8

ここでjsfiddleの例を見てみましょう

http://jsfiddle.net/HTjCT/1/

ホバーすると表示されるように、マウスオーバーイベントは発生しません。

どうすればこの問題を解決できますか?

私はJquery1.9を使用しています

<div id='superdiv'>Click Me</div>


$(function () {
    $('#superdiv').on('click', function (event) {
        $('body').append('<div id="super">another');
    });
    $('#super').on('mouseover', function (event) {
        alert('not working');
    });
});

javascript

4

3 に答える 3

14

このように「デリゲート」を使用する必要があります(「ライブ」を提供するため) $('body').on('mouseover', '#super', function (event) {

于 2013-01-18T14:32:00.303 に答える
0

また、マウスオーバーイベントを関数でラップし、影響を受ける新しい要素を追加するたびに呼び出すこともできます。そうすれば、WickyNilliamsが指摘した問題はあなたに影響を与えません。

$(function () { 
    $('#superdiv').on('click', function (event) { 
        $('body').append('<div id="super">another');
        mouse();
    }); 
    function mouse () {
        $('#super').on('mouseover', function (event) { 
            alert('not working'); 
        }); 
    });
    mouse();
}
于 2017-02-13T13:36:12.990 に答える
-2

onclickで作成するdivは、'</div>'タグで閉じられていません。

次のコードを試してみるとどうなりますか。

$(function () {
    $('#superdiv').on('click', function (event) {
        $('body').append(
            $('<div/>',{ 'id' : 'super', 'text' : 'tetet'}).mouseover(function(event) { 
                    alert('test'); 
            })
        );
    });
});
于 2013-01-18T14:31:26.677 に答える