jQuery 插入元素時繫結事件 或 已載入的html繫結事件
阿新 • • 發佈:2019-01-28
//已載入好的
$("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'); });
//第一個引數是觸發的方式 第二個引數是找到要誰執行