Javascript、jQuery - 如何对刚刚创建的对象签名操作?

标签 javascript jquery

我正在尝试制作能够添加和删除元素的简单列表。现在,我正在努力添加每个列表元素对象(现有的和添加的)并对其执行简单的操作。不幸的是我在这方面遇到了一些困难。我可以修改一开始创建的对象,但不能修改“网页工作”期间添加的对象。

首先我的想法是添加 AJAX,但我认为这不是最简单的方法。

我想不久前(我不记得在哪里)我读过如何使这项工作有效,但现在我不知道。如果有人能帮助我解决这个问题,或者至少提供一个对此进行良好解释的链接,我将非常高兴。

这是我到目前为止所做的(好吧,这主要只是一个划痕,但主要思想就在其中):http://jsfiddle.net/sebap123/pAZ7H/0

$("li").click(function() {
    $(this).text("new text");
});
$("#addButton").click(function() {
    $(".list").append(
    $('<li>').append($('<span>').append("added li")));
});​

感谢您的所有回复。

最佳答案

您只需要通过 on() 方法使用事件委托(delegate):

$("ul").on('click','li', function() {
    $(this).text("OK");
});

JS Fiddle demo .

您遇到的问题是 jQuery 只能直接将事件绑定(bind)到已经存在的元素(在事件绑定(bind)时存在); on() 方法将操作绑定(bind)到添加新内容的元素(或新添加元素的祖先元素),标识要监听 'click' 的事件(以空格分隔的事件列表),与选择器 (li) 匹配,然后该函数执行所需的操作。

如果您使用的是 jQuery 1.7(或更高版本),应使用 on(),对于 jQuery < 1.7 的版本,应使用 delegate() (它或多或少做了相同的事情,但颠倒了事件列表和选择器参数):

$("ul").delegate('li', 'click', function() {
    $(this).text("OK");
});

JS Fiddle demo .

引用文献:

关于Javascript、jQuery - 如何对刚刚创建的对象签名操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647676/

相关文章:

javascript - 使用钛处理 Android 应用程序登录的 session 和 cookie

javascript - 寻找动态添加/删除框但隐藏下拉值上的字段

javascript - 使用 jQuery 在本地系统中加载和解析 JSON 文件

javascript - 有没有办法在 jqGrid 3.4.4 中设置每列的搜索选项?

jquery - CSS 过渡仅在类打开时激活,而不是关闭

javascript - 部署全栈 Node 应用 npm/package.json 架构

javascript - 从多个div中获取文本并放置在其他对应的div中

javascript - 我如何响应式地将 vine 嵌入到 Blogger 中?

javascript - 克隆项目时,是否可以像这样更改所有输入属性和 ID?

jquery - 查找当前导航项并将类分配给 li