从事件监听器中排除按钮
Exclude Button From Event Listener OnClick
真正简单的jquery问题在这里,我还没有解决。我有以下html表
<table id="table-1">
<tr>
<td>Value 1</td>
<td>Value 2</td>
<td>
<button id="btn-1" value="Go"></button>
</td>
</tr>
</table>
当单击表行时,我有以下事件侦听器
$("table-1 tr").on(
'click',
function(e){
if(button was clicked){
//do some stuff
} else {
//do different stuff
}
}
);
我希望这个事件侦听器在表行被选中时触发,除非所单击的项是我的按钮。我一直在尝试使用:not
和.not()
,但没有运气。什么好主意吗?
根据您想要捕获元素类型的示例
$("#table-1 tr").on('click', function (e) {
var elementType = $(e.target).prop('nodeName');
if (elementType == 'BUTTON') {
console.log('buttonClick');
} else {
console.log(elementType);
};
});
http://jsfiddle.net/ymy9cn71/使用event. stoppropagation (),防止事件冒泡到父元素
$('#btn-1').click(function(event){
event.stopPropagation();
})
如果您专门在按钮上设置事件侦听器会怎么样?应该采用最具体的规则。如果你点击行,那么行事件会触发,如果你点击按钮,那么按钮事件会首先触发,然后父程序会运行。因此,您可以使用一个简单的变量来检查按钮是否被选中。
Var gContext;
$("#btn-1"). on('click', function() { gContext = true });
$("table-1 tr").on(
'click',
function(e){
if(button was clicke$("table-1 tr").on(
'click',
function(e){
if(gContext === true){
//do some stuff
} else {
//do different stuff
}
}
);d){
//do some stuff
} else {
//do different stuff
}
}
);
- 在我的手机上做了这个,希望它的格式正确。
下面的代码检查事件目标的标签名称,以知道tr
的哪个部分被点击了
$('table').on('click', 'tr', function (e) {
var i = $('table tr').index(this);
var tag = e.target.tagName.toLowerCase();
if (tag === 'button') {
alert('go #' + i);
}
else {
alert('select row #' + i);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>Value 1</td>
<td>Value 2</td>
<td><button>Go</button></td>
</tr>
<tr>
<td>Value 1</td>
<td>Value 2</td>
<td><button>Go</button></td>
</tr>
</table>
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 多个单选按钮组相互干扰
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- Javascript按钮下拉列表
- jquery试图按名称获取按钮位置
- 漂亮照片图片库中的Facebook赞按钮
- 扩展移相器按钮类不工作
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 单击按钮以等待单击按钮
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何从querySelectorAll中获取按钮类型
- 从“onblur”事件中排除表单按钮,JavaScript
- 从beforeunload事件中排除提交按钮
- 从事件监听器中排除按钮
- 如何用javascript从表单验证中排除一个按钮
- 要排除单选按钮,在模糊时调用Jquery函数
- 如何选择所有的单选按钮和排除一个jquery
- 调用函数的所有输入但排除提交按钮