Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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
Javascript 检查点击事件是否由tr内的按钮发起_Javascript_Jquery - Fatal编程技术网

Javascript 检查点击事件是否由tr内的按钮发起

Javascript 检查点击事件是否由tr内的按钮发起,javascript,jquery,Javascript,Jquery,我有一个包含5列的html表。在一列中我有一个按钮。 当我单击该行时,我使用jquery对该行应用css(我选择了该行)。但是,当我单击该行上的按钮时,我不想将样式应用于该行 现在,我检查是否按如下方式单击该行: $('#mytable tbody').on('click', 'tr', function (event) { //If the click originated by the button don't apply stile //... //...els

我有一个包含5列的html表。在一列中我有一个按钮。 当我单击该行时,我使用jquery对该行应用css(我选择了该行)。但是,当我单击该行上的按钮时,我不想将样式应用于该行

现在,我检查是否按如下方式单击该行:

$('#mytable tbody').on('click', 'tr', function (event) {

    //If the click originated by the button don't apply stile
    //...

    //...else apply the style on tr

}

在函数内部,如何检查单击是否由按钮发起?

您需要在按钮单击内部使用
event.stopPropagation()

事件。停止播放() 防止事件在DOM树中冒泡,防止任何 父处理程序不会收到事件通知


来源:

您需要在按钮内使用
事件.stopPropagation()

事件。停止播放() 防止事件在DOM树中冒泡,防止任何 父处理程序不会收到事件通知


来源:

您可以使用事件的
target
属性来确定引发冒泡事件的元素。试试这个:

$('#mytable tbody').on('click', 'tr', function (e) {
    if (e.target.nodeName == 'BUTTON') {
        // the button was clicked...
    }
});
或者,您可以使用按钮上的
stopPropagation
,单击:

$('#mytable tbody').on('click', 'button', function (e) {
    e.stopPropagation();
    // other logic...
});

您可以使用事件的
target
属性来确定引发冒泡事件的元素。试试这个:

$('#mytable tbody').on('click', 'tr', function (e) {
    if (e.target.nodeName == 'BUTTON') {
        // the button was clicked...
    }
});
或者,您可以使用按钮上的
stopPropagation
,单击:

$('#mytable tbody').on('click', 'button', function (e) {
    e.stopPropagation();
    // other logic...
});

您可以使用
event.currenttarget
检查当前目标并应用样式。

您可以使用
event.currenttarget
检查当前目标并应用样式。

您可以通过
event.target
对其进行过滤:

$('#mytable tbody').on('click', 'tr', function (event) {
  if (event.target.nodeName != 'TR') return;

  // handle event
});

如果按钮上有jQuery事件处理程序,请使用
event.stopPropagation
,这样
单击
事件不会在DOM树上冒泡。

您可以通过
event.target对其进行过滤:

$('#mytable tbody').on('click', 'tr', function (event) {
  if (event.target.nodeName != 'TR') return;

  // handle event
});
如果按钮上有jQuery事件处理程序,请使用
event.stopPropagation
,这样
单击
事件不会在DOM树上冒泡

  • 类名
    id
    分配给
    按钮
  • 使用
    event.target.className
    检查原始元素是否包含您提供的
    按钮的
    className
    id
    。只有当事件起源不是来自按钮时(当它等于按钮类时,则停止),才触发
    tr
    事件功能来设置
    tr
  • if(event.target.className==){
    //退出函数
    返回
    }否则{
    //做造型
    }
    
  • 类名
    id
    分配给
    按钮
  • 使用
    event.target.className
    检查原始元素是否包含您提供的
    按钮的
    className
    id
    。只有当事件起源不是来自按钮时(当它等于按钮类时,则停止),才触发
    tr
    事件功能来设置
    tr
  • if(event.target.className==){
    //退出函数
    返回
    }否则{
    //做造型
    }