jQuery使用on()綁定動態生成元素的事件無效


jquery on()方法是jquery1.7+后才使用的

由於需求:動態添加了以下代碼

<tr class="pj" data-val="no">
<th id="first_tr" rowspan="1" colspan="1" data-id="xxx">自我評價<button type="button" title="添加" id="add_rw"/> 
</th>
<td colspan="2">
<input type="text" name="task_name" datatype="title" Caption="自我評價" MAXLEN="100" ISNULL="notnull"/></td> 
<td colspan="1"><input type="checkbox" name="result" value="2"/></td> 
<td colspan="1"><input type="checkbox" name="result" value="1"/></td> 
<td colspan="1"><input type="checkbox" name="result" value="0"/></td> 
</tr>

  綁定是這么寫的

       $("input[name='result']").on("click",function(){
            var len =     $(this).parent().siblings().children("input").attr("checked",false);
            $(this).attr("checked",true);
        
    });

發現對於動態添加的沒有起到監聽作用,那么對代碼進行修改,把監聽對象改成靜態的就可以了

       $("table").on("click","input[name='result']",function(){
            var len = $(this).parent().siblings().children("input").attr("checked",false);
            $(this).attr("checked",true);
        
    });

這里table是非動態添加的父節點,由於.pj也是動態生成的,寫.pj 作為父節點是沒有效果的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM