1. 程式人生 > >jQuery 插入元素時繫結事件 或 已載入的html繫結事件

jQuery 插入元素時繫結事件 或 已載入的html繫結事件

//已載入好的

$("user-news").click(function(){
    alert("");
});
<div class="user-center pull-right">
    <img class="member-drop-down cursor-hand" src="../app/images/main/member-drop-down.png" alt=""/>
    <img class="user-head user-news" src="../app/images/SMS/logo.png" alt=""/>
    <span class=
"">cutemiex:星星</span> </div>
$('.switchMainModule').click(function(event){
    alert("fafa");

});

//動態插入的元素

$_li = $("#left-navigation").empty();
for (var num = 1; num <= navigation.length; num++) {
    var attrs = navigation[num - 1].text;
var childs = navigation[num - 1].child;
var $l_num = $
("<h5 class='switchMainModule'></h5>").text(attrs); var $u_num = $("<ul class='sub-modules list-unstyled'></ul>");
}
//但是發現沒有做用 click只繫結已載入好的元素 對動態載入的無效 之前版本可以用live()實現
$('.switchMainModule').live('click',function(event){
    alert("fafa");

});

//我用的jQuery 1.11.3中沒發現live()方法 後來才發現live()用on() 代替了

//jQuery不能直接使用on繫結動態生成的元素,而是選擇非動態生成的父類元素節點 然後再找到本身才能達到效果

$_li.on('click','.switchChildModule',function(event){
    $('li').removeClass('test-color');
$(this).addClass('test-color');
});
//第一個引數是觸發的方式 第二個引數是找到要誰執行