[英]jQuery Live() doesn't work
您好,由於某些原因,我的live()函數無法正常工作。 我想通過單擊ulAllApps內部的li元素來添加具有單擊功能的喵喵li元素。 在ulMyApps內部創建了一個新的li元素,但沒有單擊功能。
HTML:
<div class="MyApps" >
<ul class="ulMyApps">
<li class="MYLinkTR">app1</li>
</ul>
</div>
<div class="AllApps">
<ul class="ulAllApps">
<li class="IECLinkTR">app1</li>
<li class="IECLinkTR">app2</li>
</ul>
</div>
jQuery代碼:
$(document).ready(function () {
$(".IECLinkTR").click(function () {
var tmp = $(this).html();
$.ajax({
type: "POST",
url: window.location.href+"/addToMyLinks",
data: "{'app': '" + tmp + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$(".ulMyApps").append("<li class=\"MYLinkTR\">"+ tmp +"</li>");
},
error: function (msg) {
alert("You have already have that app");
}
});
});
$(".MYLinkTR").live('click', function () {
var tmp = $(this);
$.ajax({
type: "POST",
url: window.location.href + "/removeFromMyLinks",
data: "{'app': '" + $(this).html() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
tmp.closest('li').remove();
},
error: function (msg) {
}
});
});
});
由於某種原因,動態創建的新li元素沒有來自Live函數的CLICK功能……
我所看到的是,在您的MYLinkTR click函數上,您試圖刪除tmp.closest('li')。 現在看一下我認為最接近的文檔,它正在DOM上移,以尋找最接近的下一個('li'),而不是其最近的那個。 您確定不想要tmp.remove()嗎?
也許是先查看點擊是否引發警報,以查看是否觸發了警報,因為您沒有對錯誤采取任何措施。 您可能不知道在這里發生了一些事情。 其他選項是將LIVE更改為委托並將其附加到ul,看看是否會觸發
$('ul.MyApps').delegate('li', 'click', function(e){
alert('does this at least fire');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.