ajaxによってロードされた要素が表示されるようになったときにコードを実行するにはどうすればよいですか(「表示」が「なし」から「ブロック」に切り替わります)? まあ、私はいくつかのイベントが必要です
$('#element').live('show', function(){
// CODE
});
または、要素へのクラスの削除/追加を監視するイベント
ajaxによってロードされた要素が表示されるようになったときにコードを実行するにはどうすればよいですか(「表示」が「なし」から「ブロック」に切り替わります)? まあ、私はいくつかのイベントが必要です
$('#element').live('show', function(){
// CODE
});
または、要素へのクラスの削除/追加を監視するイベント
jquery-appear プラグインを使用して問題を解決しました
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 イベント コールバックがいくつかあります。これらのイベント コールバックでは、「要素が表示されたとき」の実行コードを配置する必要があります。
それを実現できる組み込みのjQueryはありません。livequery プラグインをご覧ください。例えば:
$('#element').livequery(function() {
// CODE
});
id="element" を持つ要素が DOM に追加されると、コールバックが実行されます。
試しましたjQuery.load()
か?
http://api.jquery.com/load-event/
少なくとも画像、スクリプト タグなどでは機能するはずですが、URL を持たない要素では機能しません。
それ以外の場合は、livequeryが役立ちます。