Javascript,jQuery-如何将已签名的操作添加到刚刚创建的对象?
我试图制作一个简单的列表,能够添加和删除元素。现在,我正在为每个列表元素对象(现有的和添加的)添加和执行一个简单的操作。不幸的是,我在这方面遇到了一些困难。我可以修改刚开始创建的对象,但不能修改在“网页工作”期间添加的对象 首先,我的想法是将AJAX添加到这个应用程序中,但我认为这不是最简单的方法 我想前一段时间(我不记得在哪里)我读过如何使这项工作,但现在我不知道。如果有人能帮我解决这个问题,或者至少给我一个链接,好的解释这个问题,我会非常高兴 到目前为止,我已经做了一些工作(好吧,这主要只是一个擦伤,但主要思想就在其中):Javascript,jQuery-如何将已签名的操作添加到刚刚创建的对象?,javascript,jquery,Javascript,Jquery,我试图制作一个简单的列表,能够添加和删除元素。现在,我正在为每个列表元素对象(现有的和添加的)添加和执行一个简单的操作。不幸的是,我在这方面遇到了一些困难。我可以修改刚开始创建的对象,但不能修改在“网页工作”期间添加的对象 首先,我的想法是将AJAX添加到这个应用程序中,但我认为这不是最简单的方法 我想前一段时间(我不记得在哪里)我读过如何使这项工作,但现在我不知道。如果有人能帮我解决这个问题,或者至少给我一个链接,好的解释这个问题,我会非常高兴 到目前为止,我已经做了一些工作(好吧,这主要只是
$(“li”)。单击(函数(){
$(本).text(“新文本”);
});
$(“#添加按钮”)。单击(函数(){
$(“.list”).append(
$(').append($('.append(“添加的li”));
});
感谢您的所有回复。您只需使用事件委派,并使用
on()
方法:
$("ul").on('click','li', function() {
$(this).text("OK");
});
您遇到的问题是jQuery只能直接将事件绑定到已经存在的元素(在事件绑定时存在);on()
方法将操作绑定到添加新内容的元素(或新添加元素的祖先元素),标识要侦听的事件“单击”
(以空格分隔的事件列表),这些事件与选择器(li
)匹配,然后函数执行所需的操作
如果您使用的是jQuery 1.7(或更高版本),则应使用on()
,而对于jQuery<1.7的版本,则应使用delegate()
(其作用大致相同,但会反转事件列表和选择器参数):
参考资料:
on()
方法:
$("ul").on('click','li', function() {
$(this).text("OK");
});
您遇到的问题是jQuery只能直接将事件绑定到已经存在的元素(在事件绑定时存在);on()
方法将操作绑定到添加新内容的元素(或新添加元素的祖先元素),标识要侦听的事件“单击”
(以空格分隔的事件列表),这些事件与选择器(li
)匹配,然后函数执行所需的操作
如果您使用的是jQuery 1.7(或更高版本),则应使用on()
,而对于jQuery<1.7的版本,则应使用delegate()
(其作用大致相同,但会反转事件列表和选择器参数):
参考资料:
var clickEvent = function() {
$('li').unbind().on('click', function() {
$(this).text("OK");
});
}
clickEvent();
$("#addButton").click(function() {
$(".list").append(
$('<li>').append($('<span>').append("Press me - I am new!")));
clickEvent();
});
var clickEvent=function(){
$('li').unbind().on('click',function()){
$(此).text(“确定”);
});
}
clickEvent();
$(“#添加按钮”)。单击(函数(){
$(“.list”).append(
$(“”).append($('').append(“按我-我是新的!”));
clickEvent();
});
在第二种方法中,在添加新元素后,将绑定解除绑定并将新事件绑定到所有元素
绑定和再次绑定事件是一种糟糕的设计模式
此处需要使用事件委派。。 试试这个 上一个click事件的问题是,事件仅附加到页面上的当前元素 但是,创建新元素时,不会将任何事件附加到该元素 你有两个选择。。或授权您的活动,即:;将事件侦听器添加到元素的祖先 或在创建元素后添加事件 第二种方法
var clickEvent = function() {
$('li').unbind().on('click', function() {
$(this).text("OK");
});
}
clickEvent();
$("#addButton").click(function() {
$(".list").append(
$('<li>').append($('<span>').append("Press me - I am new!")));
clickEvent();
});
var clickEvent=function(){
$('li').unbind().on('click',function()){
$(此).text(“确定”);
});
}
clickEvent();
$(“#添加按钮”)。单击(函数(){
$(“.list”).append(
$(“”).append($('').append(“按我-我是新的!”));
clickEvent();
});
在第二种方法中,在添加新元素后,将绑定解除绑定并将新事件绑定到所有元素
绑定和再次绑定事件是一种糟糕的设计模式
非常感谢您对本主题的精彩解释。我只是在找这个。非常感谢你们对这个话题的精彩解释。我只是在找这个。
var clickEvent = function() {
$('li').unbind().on('click', function() {
$(this).text("OK");
});
}
clickEvent();
$("#addButton").click(function() {
$(".list").append(
$('<li>').append($('<span>').append("Press me - I am new!")));
clickEvent();
});