8

好的,这里是 jsfiddle 示例

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

正如您在悬停时看到的那样,它不会触发 mouseover 事件

我怎么解决这个问题 ?

我正在使用 Jquery 1.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 回答