Javascript 即使如此,数据也不会改变
这是我自己的实践,它工作得很好,我期待。但是当我使用第8行(对演示代码的注释)而不是第7行时,输入的文本值都变为0,这与我给出的演示结果不同 我看了jquery网站,它只给了我这个 描述:绑定当前执行处理程序时传递给事件方法的可选数据对象 我认为使用第8行或第7行的结果应该是相同的,因为我被指定给count object,但事实并非如此。有人能给我解释一下这个问题吗。顺便说一句,如果有人能重构我的代码,那会更好,谢谢 这是我的密码Javascript 即使如此,数据也不会改变,javascript,jquery,Javascript,Jquery,这是我自己的实践,它工作得很好,我期待。但是当我使用第8行(对演示代码的注释)而不是第7行时,输入的文本值都变为0,这与我给出的演示结果不同 我看了jquery网站,它只给了我这个 描述:绑定当前执行处理程序时传递给事件方法的可选数据对象 我认为使用第8行或第7行的结果应该是相同的,因为我被指定给count object,但事实并非如此。有人能给我解释一下这个问题吗。顺便说一句,如果有人能重构我的代码,那会更好,谢谢 这是我的密码 var i = 0; $("#aa").on("click",
var i = 0;
$("#aa").on("click", {
count : i
},
function(event) {
var div = $('<div/>');
var input = $('<input />').attr("value", event.data.count);
event.data.count++;
//i++;
var bt = $('<input />').attr({
type : "button",
value : "remove",
});
div.append(input);
div.append(bt);
var index = $("div").length;
if (index == 0) {
$("#aa").after(div);
} else {
$("div").last().after(div);
}
bt.on('click', function(event) {
$(this).parent().remove();
});
});
var i=0;
$(#aa”)。点击{
伯爵:我
},
功能(事件){
var div=$('');
var输入=$('').attr(“值”,event.data.count);
event.data.count++;
//i++;
变量bt=$('').attr({
键入:“按钮”,
值:“删除”,
});
div.append(输入);
附加分部(bt);
var指数=$(“div”).长度;
如果(索引==0){
元(“#aa”)。在(div)之后;
}否则{
$(“div”).last()在(div)之后;
}
bt.on('点击',功能(事件){
$(this.parent().remove();
});
});
这是本节的重要内容。因此,在使用click
事件绑定函数期间,只会创建一次对象。因此,更改i
不会更改event.data
的值
当你这样做的时候
event.data.count++;
实际上,您正在修改对象,对象的状态将被保留。这就是它起作用的原因
event.data.count++;