我有这个功能:
$(function ($) {
...
});
var getNotifyBar = $(".NotifyBar");
function showNotify(text) {
getNotifyBar.hide().find(".text").html(text).end().slideDown();
}
当我使用函数showNotify(text)
时,没有任何反应。但是,当我把它放在JavaScript控制台(浏览器)时,它可以工作。
答案 0 :(得分:5)
在渲染类NotifyBar的所有元素之前,这种情况很可能正在运行
var getNotifyBar = $(".NotifyBar");
这意味着当您稍后尝试使用它时它是空的。你应该这样做:
var getNotifyBar;
$(function ($) {
getNotifyBar = $(".NotifyBar");
});
现在它应该正确加载。接下来,您需要记住getNotifyBar是对已经从选择器加载的jQuery对象的引用。因此,您无需将其包装在$()
中。你应该做这个改变:
function showNotify(text) {
getNotifyBar.hide().find(".text").html(text).end().slideDown();
}
答案 1 :(得分:0)
您的代码现在无法正常工作并且可以在控制台上运行,因为当您在控制台中运行它时,它位于DOMReady之后。在示例中将代码放在3个点的位置,它将起作用,因为:
$(function($){
//code here
})
将在DOMReady
之后运行代码