jQuery-查找点击的确切目标(代码在Chrome中可用,但在Firefox中不可用)
我有一个完整的TD设置,可以点击最小化和最大化它。但是,我想这样做,如果单击TD的某个部分,它不会最小化/最大化它,而是执行其他一些代码。在浏览了这个网站和谷歌之后,我发现我需要找到活动的目标。我从stackoverflow的另一个问题中获取了这段代码,它在Chrome中运行得非常好,但在Firefox中JS崩溃了 这里是它崩溃的地方:jQuery-查找点击的确切目标(代码在Chrome中可用,但在Firefox中不可用),jquery,firefox,google-chrome,crash,target,Jquery,Firefox,Google Chrome,Crash,Target,我有一个完整的TD设置,可以点击最小化和最大化它。但是,我想这样做,如果单击TD的某个部分,它不会最小化/最大化它,而是执行其他一些代码。在浏览了这个网站和谷歌之后,我发现我需要找到活动的目标。我从stackoverflow的另一个问题中获取了这段代码,它在Chrome中运行得非常好,但在Firefox中JS崩溃了 这里是它崩溃的地方: $(function() { $('.clickable').live('click', function() { alert(
$(function()
{
$('.clickable').live('click', function()
{
alert('click');
//Figuring out where a user clicked
var targ;
var e;
if (!e)
e = window.event;
if (e.target)
targ = e.target;
else if (e.srcElement)
targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
alert('after');
});
return false;
});
在这两种情况下,都会显示“单击”警报,但只有在Chrome中才会显示“之后”警报。有什么帮助吗?删除
var e;
if (!e)
e = window.event;
并添加事件e
作为功能参数:
$('.clickable').live('click', function(e)
另请参见此图。删除
var e;
if (!e)
e = window.event;
并添加事件e
作为功能参数:
$('.clickable').live('click', function(e)
另请参见此图。使用嵌套的单击处理程序,您可以像这样阻止事件冒泡
$(document).on('click', '.clickable', function(){
//do stuff
});
$('#mytable').on('click', '.clickable-child', function(event){
event.stopPropagation();
//do child stuff
});
停止传播将不允许触发第一个事件。使用嵌套的单击处理程序,您可以像这样停止事件冒泡
$(document).on('click', '.clickable', function(){
//do stuff
});
$('#mytable').on('click', '.clickable-child', function(event){
event.stopPropagation();
//do child stuff
});
停止传播将不允许触发第一个事件。这是jsiddle中的解决方案-这是jsiddle中的解决方案-侧注,从jQuery 1.7开始,正确的语法是
$(document)代码>而不是实时调用。旁注,从jQuery1.7开始,正确的语法是$(document)代码>而不是实时呼叫。