1

指定されたアイテムのロードを (動的にロードされている場合も) キャッチ/処理したいと考えています。

イベントがclick正常に動作する場合:

$('#articles').on("click",".article",function(eo){
        //...               
    });

これは私が試したことです:

$(document).on("load","input",function(){
    alert(1);
});​

これは私がそれを使用する方法です:

<input type=hidden name='size' value=1>
<select name='size'>
  <option value=0>A4</option>
  <option value=1>A3</option><!--this will be selected, that is indicated with the hidden input-->
</select>

これを行うためのスクリプト:

$(document).on("load","input",function(e){
    var name = e.attr("name");
    var val = e.val(); 
    if(name!=""&& typeof(e)!="undefined")
    {
       e.parent().find('select[name='+name+']').val(val);               
    }       
});​

マニュアルにはそれが好ましいと書かれているので、可能であればある種の on() 関数を求めています。

4

4 に答える 4

2

私は次のことを提案します:

$(document).on('DOMNodeInserted', 'input', function(e) {
    console.log($(this));
});

JSフィドルデモ

実装されていないブラウザーを使用しているユーザーのエクスペリエンスが心配な場合はDomNodeInserted、もちろん、要素がDOMに追加された時点でカスタムイベント名を使用してイベントをトリガーし、リッスンすることができます。メソッドを使用したそのイベントのon()場合:

$(document).on('customEventName', 'input', function(e) {
    console.log($(this));
});

$('#add').click(
    function() {
        var i = $('input').length,
            input = $('<input />',{'id' : 'input_' + i});
        input.appendTo('body').trigger('customEventName');
    });​

JSフィドルデモ


参照:

于 2012-05-21T09:55:14.123 に答える
0

特定の要素を探している場合は、 を使用setTimeoutして、新しいセレクターに一致する要素を定期的に探すことができます。

function findNew() {
   var $selected = $('.some-selector').filter(function() {
       return !$(this).data('filtered');
   });

   $(document).trigger({type: 'elementadded', elements:$selected });

   $selected.data('filtered', true);

   setTimeout(findNew, 500);
}

$(document).on('elementadded', function(e) {
  alert('found ' + e.elements.length + ' new elements.');
});

findNew();
于 2012-05-21T09:36:02.723 に答える
0

jquery の livequery プラグインを確認することをお勧めします。

http://docs.jquery.com/Plugins/livequery

$('input') 
.livequery(function(){ 
alert(1);
}
于 2012-05-21T09:29:25.263 に答える
0

動的にロードされた要素にある場合は、try を実行します.live()。これは.bind()、動的に追加された要素の検索を開いたままにし、それらが表示されたときにそれらをバインドするように機能します。

于 2012-05-21T09:29:45.877 に答える