簡體   English   中英

jQuery Live()不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM