-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 に答える