14

重複の可能性:
div が表示されたときにアクションをトリガーする jQuery イベント

ajaxによってロードされた要素が表示されるようになったときにコードを実行するにはどうすればよいですか(「表示」が「なし」から「ブロック」に切り替わります)? まあ、私はいくつかのイベントが必要です

$('#element').live('show', function(){
// CODE
});

または、要素へのクラスの削除/追加を監視するイベント

4

4 に答える 4

3

jquery-appear プラグインを使用して問題を解決しました

https://github.com/morr/jquery.appear

于 2012-05-16T07:31:10.747 に答える
2

1 秒ごとにチェックを実行します。が存在し、表示されている場合は#element、間隔をクリア (停止) してコードを実行します。

var checkVisible = setInterval(function(){

    // if element doesn't exist or isn't visible then end
    if(!$('#element').length || !$('#element').is(':visible'))
        return;

    // if element does exist and is visible then stop the interval and run code

    clearInterval(checkVisible);

    // place your code here to run when the element becomes visible

},1000);

必然的に、要素を表示する jQuery イベント コールバックがいくつかあります。これらのイベント コールバックでは、「要素が表示されたとき」の実行コードを配置する必要があります。

于 2012-05-14T14:15:57.660 に答える
2

それを実現できる組み込みのjQueryはありません。livequery プラグインをご覧ください。例えば:

$('#element').livequery(function() {
    // CODE
});

id="element" を持つ要素が DOM に追加されると、コールバックが実行されます。

于 2012-05-14T13:20:23.210 に答える
0

試しましたjQuery.load()か?

http://api.jquery.com/load-event/

少なくとも画像、スクリプト タグなどでは機能するはずですが、URL を持たない要素では機能しません。

それ以外の場合は、livequeryが役立ちます。

追加されたdom要素のjqueryライブイベント

于 2012-05-14T13:17:33.863 に答える