javascript
  • jquery
  • html
  • css
  • 2017-04-06 48 views 0 likes 
    0

    我有一个问题。首先,我有这个代码,我可以生成一个新的元素。这样的代码工作正常。为什么jQuery事件不起作用,当我使用jQuery生成的类

    $(document).ready(
        function() { 
         $(".addto").click(function() { 
         var text = $(this).children(".textlink").text(); 
         html = '<li class="ui-state-default"><a href="#" class="delete"><i class="fa fa-trash" aria-hidden="true"></i></a> <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>' + text + '</li>'; 
         $("#sortable").append(html); 
         }); 
    }); 
    

    如果你可以看到,这段代码会生成一个在div“#sortable”中加入的html。这工作正常。但不是下一步:此代码有一个垃圾桶图标,其目的是当您点击它时,您可以删除该元素。如果我用普通的HTML编写这段代码,它会起作用,但是当涉及到jQuery生成的html时,它不起作用。这是我用来删除元素的代码。

    $(document).ready(
        function() { 
         $(".delete").click(function() { 
         $(this).parent().remove(); 
         }); 
    }); 
    

    感谢

    +1

    这些代码片断是否按代码的顺序排列? – itamar

    +0

    请用html发帖。如果你能分享像jsfiddle这样的东西,那就更好了。 –

    +0

    谢谢你的帮助。代码张贴在下面工作正常。 –

    回答

    0

    我就这么抓到甚至还未现有元素的监听器添加到文档中。

    $(document).on('click', '.delete', function(e){ 
    $(this).parent().remove(); 
    }) 
    
    +1

    是的,它以这种方式工作。感谢您的帮助。 –

    +0

    没有问题 - 不要忘记标记答案:-) – itamar

    -1

    当您分配事件处理程序时,没有要绑定的元素。你稍后添加它们。

    您必须将事件绑定到容器元素,并使用延迟事件。

    $('#container').on('click', '.delete', function() { 
        // do delete stuff here 
    }); 
    
    相关问题