3

jquery 1.6より前はライブ機能を使用していました。jquery 1.7+ では live 関数は推奨されませんが、on 関数を使用します。次のコードで質問があります。

        $('#button').on('click', function(event) {
                    //add a new element to body
                    $('body').append('<div class="future">I am a new div</div>');
        });
    //bind a action to new element which is add a moment ago.
    $('body').on('change', '.future', function() {
        $(this).css({
            'color' : 'red',
            'font-weight' : 'bold'
        });
        $(this).text("on click me.");
        $(this).on('click', {
            name : 'liujun'
        }, myhandler);
    });

    function myhandler(event) {
        alert(event.data.name);
    }

新しいアクションが機能せず、構文が正しい。なぜ?

4

2 に答える 2

2

作業デモ http://jsfiddle.net/nQDs2/4/

  • 最初にクリックbuttonしてみてくださいtrigger
  • 次に、赤いon click meメッセージをクリックします。

divの変更時にjQueryイベントを起動します\

IEjQueryウォッチdivの場合

なぜ私が投票を取り下げているのかわかりません、それがあなたの目的に合っていることを願っています:)

コード

$('#button').on('click', function(event) {
    //add a new element to body
    $('body').append('<div class="future">I am a new div</div>');
});


//bind a action to new element which is add a moment ago.
$('body').on('change', '.future', function() {
    $(this).css({
        'color': 'red',
        'font-weight': 'bold'
    });
    $(this).text("on click me.");
    $(this).on('click', {
        name: 'liujun'
    }, myhandler);
}).bind('DOMNodeInserted DOMNodeRemoved', function(event) {
    if (event.type == 'DOMNodeInserted') {
       // alert('Content added! Current content:' + '\n\n' + this.innerHTML);
    } else {
       // alert('Content removed! Current content:' + '\n\n' + this.innerHTML);
    };
});

$('#trgbutton').click(function() {
    $('.future').trigger('change');
});

function myhandler(event) {
    alert(event.data.name);
}​
于 2012-10-14T07:46:35.740 に答える
0

このコードが原因であると確信しています。

$(this).on('click', {
      name : 'liujun'
}, myhandler);

有効な構文のようには見えません。

パラメータを渡したい場合は、これを試してください

   $(this).on("click", function(e) {
      myHandler({name: liujun})
   })

jsFiddleでHTMLを表示できれば、もっと役立つかもしれませんが、実際にはかなり混乱しています。

于 2012-10-14T13:40:46.833 に答える