作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 JS 文件,我正试图缩小它,但它遇到了一些问题。这是文件:
$(document).ready(function () {
function DisplayMessage(message, iserror) {
var htmlclass = iserror ? "error" : "success";
$('div.response-message').empty()
.append(message)
.addClass(htmlclass);
$('div.response-message').animate({
top: "-1px"
}, 1000, function () {
alert("donee");
});
}
$('.account-overlay-link > a.link').click(function (e) {
e.preventDefault();
$('.account-overlay.background').removeClass("hide");
});
$('.account-overlay > .area > .close').click(function (e) {
e.preventDefault();
$('.account-overlay.background').addClass("hide");
});
});
如您所见,我在顶部有一个常规的 javascript 函数,在下面有两个 jQuery 事件处理程序。当我保存文件以缩小时,缩小后的文件包含两个 jQuery 处理程序,但找不到该函数。
奇怪的是,如果我删除两个 jQuery block 但保留函数,文件仍然会缩小,但它是空白的(除了 (document).ready
),就好像函数没有存在。
我已经尝试重新创建文件,重新启动 Visual Studios,但没有任何效果...
最佳答案
您的函数未被“就绪”处理程序函数内的任何代码调用,因此它作为死代码被删除。无论如何,处理程序外部的任何内容都无法调用它。
如果您希望该函数成为全局可见的符号,则必须将其显式分配给 window
对象的属性:
$(document).ready(function () {
function DisplayMessage(message, iserror) {
var htmlclass = iserror ? "error" : "success";
$('div.response-message').empty()
.append(message)
.addClass(htmlclass);
$('div.response-message').animate({
top: "-1px"
}, 1000, function () {
alert("donee");
});
}
window.DisplayMessage = DisplayMessage;
如果您这样做,缩小器将不会删除它。
关于Javascript minifier 移除函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29374909/
我正在做一个项目,我的 android 在这个项目中作为一个网络服务器工作;输入带端口号的 IP 地址,打开 Web 界面,用户可以将文件上传到手机。我想在 Web 界面上显示一些图片,以便我们的界面
我是一名优秀的程序员,十分优秀!