JQuery on event не является обязательным для несуществующих элементов

Ok здесь пример 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

3 ответов


вы должны использовать "делегат", как это (для предоставления " live") $('body').on('mouseover', '#super', function (event) {


вы также можете обернуть событие мышью в функцию и вызывать его при добавлении новых элементов, которые вы хотите затронуть. Таким образом, вопрос 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();
}

div, который вы хотите создать onclick, не закрыт тегом ' '.

Что делать, если вы попробуете следующий код:

$(function () {
    $('#superdiv').on('click', function (event) {
        $('body').append(
            $('<div/>',{ 'id' : 'super', 'text' : 'tetet'}).mouseover(function(event) { 
                    alert('test'); 
            })
        );
    });
});