-1

我有这个功能:

$(function ($) {
...
});

var getNotifyBar = $(".NotifyBar");
function showNotify(text) {
    getNotifyBar.hide().find(".text").html(text).end().slideDown();
}

当我使用函数时,showNotify(text)什么也没有发生。但是当我把它放在(浏览器的)JavaScript 控制台中时,它就可以工作了。

4

2 回答 2

5

这很可能在所有具有类 NotifyBar 的元素都被渲染之前运行

var getNotifyBar = $(".NotifyBar");

这意味着当您稍后尝试使用它时它是空的。你应该这样做:

var getNotifyBar;
$(function ($) {
 getNotifyBar = $(".NotifyBar");
});

现在它应该被正确加载。接下来,您需要记住 getNotifyBar 是对已从选择器加载的 jQuery 对象的引用。因此,您不需要将其包装在$(). 您应该进行以下更改:

function showNotify(text) {
 getNotifyBar.hide().find(".text").html(text).end().slideDown();
}
于 2013-02-08T21:22:40.517 回答
0

您的代码现在没有机会工作并且可以从控制台工作,因为当您在控制台中运行它时,它是在 DOMReady 之后。将代码代替示例中的 3 个点,它将起作用,因为:

$(function($){

//code here

})

将在 DOMReady 之后运行代码

于 2013-02-08T21:24:49.153 回答