Jquery 将回发放在一组按钮上会触发多个回发
我有一张桌子,每行有一个按钮。我想将一个值写入隐藏字段,并在单击这些按钮时触发回发:Jquery 将回发放在一组按钮上会触发多个回发,jquery,Jquery,我有一张桌子,每行有一个按钮。我想将一个值写入隐藏字段,并在单击这些按钮时触发回发: $('#tblSearchDataSource').find('tbody').find('tr').find('td').find('input[class="myClass"]').live('click', function (event) { id = $(event.target).parent().parent().find('td:first').text();
$('#tblSearchDataSource').find('tbody').find('tr').find('td').find('input[class="myClass"]').live('click', function (event) {
id = $(event.target).parent().parent().find('td:first').text();
$('[id$=' + hidReturnData + ']').val(id);
dialog.dialog("close");
__doPostBack($(btnTarget).attr('name'), '');
});
不幸的是,当我单击任何按钮时,回发会被触发多次,这会导致我的asp页面出现问题。这将帮助您获取所需按钮的单击事件
$(document).on('click','.myclass',function(e){
console.log("click",e);
});
在这里查看
您可以应用逻辑从隐藏元素中检索值。而不是.live()
使用.on()
。。。元素可能在代码中附加了事件处理程序两次或多次(如果事件多次激发)。您可能正在动态创建元素。因此,每次单击元素时,事件处理程序都会在它绑定到元素时激发
而不是
$('tblSearchDataSource').find('tbody').find('tr').find('td').find('input[class])=“myClass”]).live('单击',函数(事件){
使用
$('#tblSearchDataSource').find('tbody').find('tr').find('td').find('input[class="myClass"]').off('click').on('click', function (event) {
从
$('tblSearchDataSource').find('tbody').find('tr').find('td').find('input[class=“myClass”]).live('click',函数(事件){
到
$('tblSearchDataSource').find('tbody').find('tr').find('td').find('input[class=“myClass”]).one('click',函数(事件){
修复了我的问题。能否共享html代码plzadd event.stopPropagation()@RRR:这太多代码无法粘贴。event.stopPropagation()无法工作。hmmm而不是实时使用
。
…上的元素可能已附加事件处理程序两次或多次(如果事件多次触发)在代码中。可能您正在动态创建元素。因此,每次单击元素时,事件处理程序都会在它绑定到元素时触发。而不是$('#tblSearchDataSource')。find('tbody')。find('tr')。find('td')。find('input[class=“myClass”])。live('click',function(event){
使用$(“#tblSearchDataSource”).find('tbody').find('tr').find('td').find('input[class=“myClass”]).off('click').on('click',function(event){
我看不到任何控制台输出。在你说的小提琴中..?我将它添加到我的代码中,得到了三倍于同一行的结果:f.event{originalEvent:MouseEvent,键入:“click”,timestamp:x,jQuery1620…:true,其中:1…}是的,在小提琴中。在我的代码中,我刚刚使用了console.log(event),它在小提琴上为我工作。单控制台用于单按钮单击。