javascript - jQuery Live() 不起作用

标签 javascript jquery

您好,由于某种原因我的 live() 函数不起作用。 我想通过单击 ulAllApps 内的 li 元素来添加具有单击功能的 mew 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 点击功能上,您试图删除 tmp.closest('li')。现在查看文档,我认为最接近的是在 DOM 上移动寻找最接近的下一个(“li”),而不是它所在的那个。您确定不需要 tmp.remove() 吗?

也许看看点击时是否首先引发警报,以查看它是否正在触发,因为您没有对错误执行任何操作。这里可能发生了一些你不知道的事情。其他选项是将 LIVE 更改为委托(delegate)并将其附加到 ul 并查看是否会触发

 $('ul.MyApps').delegate('li', 'click', function(e){
       alert('does this at least fire');
  });

关于javascript - jQuery Live() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702863/

相关文章:

javascript - Angular ng-Grid 的 promise

javascript - 如何在每个输入达到最大长度时自动推进焦点

javascript - jQuery, nextUntil(), 如果元素不是段落

jquery:排除 child

javascript - Node.js Express 应用程序中的 Jade (1.0+) 模板错误 : 'Duplicate key "id"is not allowed. '

javascript - 数字/字符串原型(prototype)中的 `this` 是什么?

javascript - 下拉列表到 JavaScript 数组以填充文本框

javascript - 我不知道如何让我的 javascript onclick 事件工作

javascript - JavaScript 中的 jQuery.tokenInput.js 脚本不起作用

jquery - 处理 $ ("form").submit 或 &lt;input type ="submit"> click 事件之间的区别?