On()找不到前缀HTML

时间:2013-07-31 00:07:53

标签: jquery prepend

有几篇文章涉及通过JavaScript添加的on()和DOM元素,但没有一个看到适用于我的情况。

<li class="prepend"><a href="#">x</a></li>位于<ul>之后,我似乎无法将事件附加到其中。

JS:

$('.categories > li a').on('click', function(event){
    event.preventDefault();
    if ($(this).parent().is('.more')) {
        $(this).siblings('ul').prepend('<li class="back"><a href="#">&lt; ' + $(this).html() + '</a></li>')
    }  else if ($(this).parent().is('.back')) {
        console.log('it worked')
    }
})

HTML:

<ul class="categories">
    <li class="selected">
        <a href="#">1 Featured</a>
    </li>
    <li>
        <a href="#">1 Popular Genres</a>
    </li>
    <li class="more">
        <a href="#">1 My Rooms &gt;</a>
        <ul>
            <li><a href="#">2 Tristique Cras</a></li>
            <li><a href="#">2 Porta Etiam &gt;</a></li>
            <li><a href="#">2 Mattis Tortor</a></li>
            <li class="more">
                <a href="#">2 Cras Fermentum &gt;</a>
                <ul>
                    <li><a href="#">3 Tristique Cras</a></li>
                    <li><a href="#">3 Porta Etiam</a></li>
                    <li><a href="#">3 Mattis Tortor</a></li>
                    <li><a href="#">3 Cras Fermentum</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

即使这个简单的事件也不会看到点击{class 1}}

的元素
.back

1 个答案:

答案 0 :(得分:0)

观看: http://jsfiddle.net/lughino/8uzgd/

为了捕获页面加载后创建的元素,您需要以这种方式调用方法:

$(document).on('click', '.categories > li a', function(event){

要了解详情,请查看documentation