Javascript 绑定函数只对最后一个元素起作用
我正在创建一个应用程序来存储我的作业,每当我触摸作业的li时,就会从sqlite数据库中显示该作业的信息。我的问题是,当我从javascript添加每个li时,我绑定了一个函数,这样每次我触摸该项时,它都会返回其uid。但是每当我添加一个新的硬件时,其他硬件都不会返回uid 我的一些代码:Javascript 绑定函数只对最后一个元素起作用,javascript,jquery,cordova,Javascript,Jquery,Cordova,我正在创建一个应用程序来存储我的作业,每当我触摸作业的li时,就会从sqlite数据库中显示该作业的信息。我的问题是,当我从javascript添加每个li时,我绑定了一个函数,这样每次我触摸该项时,它都会返回其uid。但是每当我添加一个新的硬件时,其他硬件都不会返回uid 我的一些代码: function newFormSuccess(tx, results){ var lista = $("#lHw"); var obj = $( '<li><
function newFormSuccess(tx, results){
var lista = $("#lHw");
var obj = $(
'<li><a id="' + results.id + '" href="#detalle" data-uid=' + results.id +
' class="ui-btn ui-btn-icon-right ui-icon-carat-r" data-transition="pop" data-direction="reverse">' +
'<h2>' + results.title + '</h2>' +
'<p>' + results.desc + '</p><p>' + results.date + '</p>' +
'<p class="ui-li-aside">Type</p></a>' +
'</li>'
);
obj.find('#' + results.id).bind('click', function (e) {
$.id = $(this).data('uid');
});
lista.append(obj).listview('refresh');
$.mobile.changePage("#home");
}
函数newFormSuccess(发送,结果){
var lista=$(“#lHw”);
var obj=$(
“”+
“ ”
);
obj.find(“#”+results.id).bind('click',函数(e){
$.id=$(this.data('uid');
});
lista.append(obj.listview('refresh');
$.mobile.changePage(“主页”);
}
有什么建议吗?为什么会发生这种情况?我通过将绑定更改为.on,并将其用于设备就绪功能,解决了这个问题,我认为这就是代表所评论的内容
$("#lHw").on("click", "li a", function(e){
$.id= $(this).data('uid');
});
我通过将bind改为.on并在设备就绪函数中使用它来解决了这个问题,我认为这就是代理所评论的内容
$("#lHw").on("click", "li a", function(e){
$.id= $(this).data('uid');
});
在为您发布答案之前,我想鼓励您研究jQuery的委托。查看文档,快速更改语法,您就可以运行了。谢谢!!我设法解决了它,这非常有帮助!在为您发布答案之前,我想鼓励您研究jQuery的委托。查看文档,快速更改语法,您就可以运行了。谢谢!!我设法解决了它,这非常有帮助!