Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将回发放在一组按钮上会触发多个回发_Jquery - Fatal编程技术网

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),它在小提琴上为我工作。单控制台用于单按钮单击。