修改DOM后,jQuery选择器无法正常工作

时间:2013-07-02 20:11:59

标签: javascript jquery javascript-events jquery-selectors dom-manipulation

我有一个选定公司的列表,如下所示:

<div id="selected_companies">
    <div class="company">
      <a>
        <div class="delete_company"></div>
        Company One
      </a>
    </div>
    <div class="company">
      <a>
        <div class="delete_company"></div>
        Company Two
      </a>
    </div>
</div>

我希望在点击其中一家公司时,将每个.company div“移动”到一个单独的#deleted_companies div中。我是用jQuery做的:

$('#selected_companies .company a').on('click', function (e) {
        /* Getting the company */
        var company_id = $(this).prev().prop('value');
        $('.form').append('<input type="hidden" name="deleted_companies[]" value="'+ company_id +'" />');

        var parent = $(this).parent();

        parent.appendTo('#deleted_companies');
        $('#deleted_companies').slideDown(300);
});

当我点击其中一家公司时,.company div移动到所需的div(#deleted_companies),但是当我尝试在该div中达到它时,它没有按预期执行。例如,此代码不起作用:

$('#deleted_companies .company a').on('click', function (e) {
    alert('This should work.');
});

那么如何使该警报工作?

1 个答案:

答案 0 :(得分:6)

使用委托,试试这个

$('#deleted_companies').on('click', '.company a', function (e) {
    alert('This should work.');
});

这基本上是要查看#deleted_companies {在创建绑定时存在的'.company a,{{1}}在创建此绑定之前不一定必须存在