jQuery Click Div On Div,除了Child Div
我有以下HTML:
我试图这样做,当用户点击server
div它会打开一个编辑对话框。 问题只是做:
$(".server").click(function () { //Show edit dialog });
不起作用,因为如果他们点击删除的X,它会打开编辑对话框。 如何使整个div server
具有除delete-server
div之外的click事件。
$(".server").on('click', ':not(.delete-server)', function (e) { e.stopPropagation() // Show edit dialog });
这是小提琴: http : //jsfiddle.net/9bzmz/3/
只需检查触发事件的元素是什么:
$(".server").click(function(e) { if (!$(e.target).hasClass('delete-server')) { alert('Show dialog!'); } });
现场演示
还有另一种解决方法:
$(".server").click(function () { // show edit dialog }); $(".delete-server").click(function (event) { // show delete dialog for $(this).closest(".server") event.stopPropagation(); });
只需确保.delete-server
上发出的click事件不会冒泡到父元素。
只有这对我有用。
js_object
是meta parent的jQuery对象,如$('body')
jq_object.on('click', '.js-parent :not(.js-child-1, .js-child-2)', function(event) { //your code }); jq_object.on('click', '.js-child-1', function(event) { //your code }); jq_object.on('click', '.js-child-2', function(event) { //your code });
根据你的情况:
服务器 – js-parent
delete-server – js-child-1
jq_object.on('click', '.server :not(.delete-server)', function(event) { //your code }); jq_object.on('click', '.delete-server', function(event) { //your code });