在jquery中添加append方法后,事件不会触发

时间:2012-09-04 12:03:40

标签: jquery-ui jquery

     <div class="sortable-sections">
            <fieldset class="section draggable" id="flSectionType">
                <div class="btn-drag section-handle hidden-view">
                </div>
                <div class="section-header">
                    <span class="section-label">Job Requirements</span> <a class="section-info" href="#more-info"
                        title="Minimum Education, Minimum Work Experience, Required Licenses/Certifications, Required Skills, Knowledge, and Abilities needed to perform the job.">
                        ?</a>
                </div>
                <div class="sortable-items">
                </div>
                <a class="section-add-item hidden-view" id="addJR" href="#add-item" data-item='{"id":"addJR","template":"requirement","item_type":"Job Requirement"}'>
                    Add a new Job Requirement</a>
            </fieldset>
       <fieldset class="section draggable">
       </fieldset>
       <fieldset class="section draggable">
       </fieldset>
     <div>

上面的代码将生成一个可以在sortable-sectons中拖动的部分列表。

我使用以下脚本手动删除部分并将其添加回可排序部分,但它没有注册jquery事件。

 var $section = $('.sortable-sections').find($('#flSectionType');
 $('.sortable-sections').find($('#flSectionType').remove();
 ......
 .......
 $('.sortable-sections').append($section.val());

在附加该部分之后,不会触发为section-add-item css类注册的事件。 注意:  而不是“ on ”使用“实时”方法。但它没有掌握所有属性。

修改: 活动代码:

   $('.section-add-item').on('click', function (e) {
        that.addSection(this);
        e.preventDefault();
    });

而不是拖放,手动我在初始加载时订购该部分。

1 个答案:

答案 0 :(得分:2)

添加事件时{p> .section-add-item必须已存在且on的使用错误

$('body').on('click', '.section-add-item', function (e) {

});

而不是正文,您可以在创建.section-add-item之前添加已存在的.section-add-item的另一个父作品。