javascript - 如何在 jquery 上的脚本中将 "live"更改为 "on"以获得相同的功能

标签 javascript jquery

我想将 jQuery 代码从 live() 函数转换为具有相同功能的 on() 函数。

如果我单击一个段落创建另一个段落,当我单击跨越“删除”时,该段落将被删除。

如果我将 live() 更改为 on(),如果我单击第一个段落而不是她之前创建的每个段落,则会创建该段落。

演示代码在这里:http://jsfiddle.net/ny38cLba/6/

HTML 代码

<body>
<p>Paragraph 1</p>

</body>

JS代码

$(document).ready(function() {
    var i = 2;
    $("p").live("click", function() {
        $("<p>Paragraph " + i++ +" <span> Delete</span></p>").insertAfter(this);
    });
    $("span").live("click", function() {
        $(this).parent().remove();
    });
});

如果我想顺利隐藏一个段落,我使用以下代码:

$(this).on("click", "span",  function(){
$(this).parent().hide("slow",function(){
    $(this).remove();
  });
})

但是删除该段落后,会出现而不是新的段落。

请参阅此代码:http://jsfiddle.net/a8e9v2m5/2/

最佳答案

这在文档中:http://api.jquery.com/live/

$( document ).on( events, selector, data, handler ); // jQuery 1.7+

所以,

$(document).on("click", "p", function() {
    $("<p>Paragraph " + i+++" <span> Delete</span></p>").insertAfter(this);
});
$(document).on("click", "span", function() {
    $(this).parent().remove();
});

关于javascript - 如何在 jquery 上的脚本中将 "live"更改为 "on"以获得相同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25957765/

相关文章:

jquery - <a> 的下载属性的替代实现

javascript - 每个用户只有 1 个 session ID 吗?

javascript - Firefox 和 MS 浏览器中 jquery 返回的数据项顺序不同

javascript - 设置输入值不适用于子元素

javascript document.write 与 jQuery ReplaceWith

javascript - 将输入文本与选项值匹配并自动选择它

javascript - 等待 ajax 响应来填充对象

javascript - 在 localStorage 中存储变量太慢

javascript - 为什么在单击按钮时从 textarea 中获取文本选择有效,但在单击 "div"时无效(在 Internet Explorer 中)

javascript - js-hotkeys,当组合超过 1 个键时函数引发两次