我有这个功能:
$(function ($) {
...
});
var getNotifyBar = $(".NotifyBar");
function showNotify(text) {
getNotifyBar.hide().find(".text").html(text).end().slideDown();
}
当我使用函数时,showNotify(text)
什么也没有发生。但是当我把它放在(浏览器的)JavaScript 控制台中时,它就可以工作了。
我有这个功能:
$(function ($) {
...
});
var getNotifyBar = $(".NotifyBar");
function showNotify(text) {
getNotifyBar.hide().find(".text").html(text).end().slideDown();
}
当我使用函数时,showNotify(text)
什么也没有发生。但是当我把它放在(浏览器的)JavaScript 控制台中时,它就可以工作了。
这很可能在所有具有类 NotifyBar 的元素都被渲染之前运行
var getNotifyBar = $(".NotifyBar");
这意味着当您稍后尝试使用它时它是空的。你应该这样做:
var getNotifyBar;
$(function ($) {
getNotifyBar = $(".NotifyBar");
});
现在它应该被正确加载。接下来,您需要记住 getNotifyBar 是对已从选择器加载的 jQuery 对象的引用。因此,您不需要将其包装在$()
. 您应该进行以下更改:
function showNotify(text) {
getNotifyBar.hide().find(".text").html(text).end().slideDown();
}
您的代码现在没有机会工作并且可以从控制台工作,因为当您在控制台中运行它时,它是在 DOMReady 之后。将代码代替示例中的 3 个点,它将起作用,因为:
$(function($){
//code here
})
将在 DOMReady 之后运行代码