2013-10-22 78 views
1

工作在我的代碼的一部分(這是非常廣泛的,所以我只會顯示部分適用),我有這樣的:event.stopPropagation()不是點擊事件

$(".help."+help+" .left").click(function(event){ 
event.stopPropagation(); 
if (!moving){ 
    moving = 1; 
    var move = $(".help."+help+" .all").css("left"); 
    move = parseInt(move.substr(0,move.length-2)) + 300; 
    if (move <= 0)$(".help."+help+" .all").animate({left:move},{duration:300,complete:function(){moving = 0}}) 
    else moving = 0; 
}; 
}); 

event.stopPropagation()是防止它被稱爲:

$("html").click(function(){ 
alert("check"); 
$(".help").each(function(){ 
    if ($(this).hasClass("open")){ 
    $(this).removeClass("open").animate({opacity:0},{duration:500,complete:function(){ 
     $(this).css("display","none"); 
    }}); 
    }; 
}); 
}); 

本節將關閉在文檔中任何位置點擊它時的「幫助框」。

event.stopPropagation()雖然不工作。我把alert("check")放在那裏以確保它是問題,而且是。

奇怪的部分?這下一行代碼正在與event.stopPropagation()

$(".showhelp").click(function(event){ 
event.stopPropagation(); 
if ($(this).hasClass("materials"))help = "materials"; 
else help = "bearings"; 
if (!$(".help."+help).hasClass("open")){ 
    $(".help."+help).addClass("open").css("display","block").animate({opacity:1},200); 
}else{ 
    $(".help."+help).removeClass("open").animate({opacity:0},{duration:200,complete:function(){ 
    $(this).css("display","none"); 
    }}); 
}; 
}); 

我希望這是足夠的信息。

+0

您確定'$(「。help。」+ help +「.left」)。click(...)'的處理程序正在被調用嗎?在那裏嘗試'console.log()'或'alert()'。 –

+0

是的,它被調用。爲了仔細檢查,我添加了一個警報來查看。 –

+0

你有沒有試過'return false' – Satpal

回答

1

我意識到問題所在。與stopPropagation()無關。必須處理未定義的變量。

問題已解決。儘管感謝您的幫助!