我在具有class「element」類的div中有一個錨點。在點擊事件中使用stopPropagation
<div class="element logout">
<div class="subTop">
<a href="home.jsp" onclick="return confirm('Do you want to logout?');">Log Out</a>
</div>
</div>
我使用下面的代碼來處理註銷。
jQuery(".element").click(function(e){
var tmpHref=jQuery(this).not('.logout').find(".subTop>a").attr('href');
if(tmpHref!=undefined&&tmpHref!=""&&tmpHref!=null)
{
window.location.href=tmpHref;
}
else
{
jQuery(this).find(".subTop>a").click();
}
});
但我的問題是確認事件觸發一次又一次。我認爲這是因爲它的傳播。經過我的研究,我發現我可以使用this後的e.stopPropagation()
。但我無法弄清楚如何在這裏使用它。
編輯 消息'您要退出嗎?'在確認框是從數據庫中動態獲取的,所以我不能在代碼中對其進行硬編碼。
我認爲你想根據'div class','logout'或'not'來重定向你的頁面。如果'logout class'則是'logout.jsp',如果div沒有'logout class',那麼'home.jsp'。對? – 2013-03-18 08:13:19
你有一個無限循環 - 在else子句中單擊()。首先修改你的邏輯--e.stopPropagation()或取消事件泡泡更糟糕的補丁 - 你的代碼應該足夠乾淨,可以在沒有某種惡意行爲的情況下正常退出。我確信這段代碼可以重新編寫得很乾淨 - 你能詳細說明你正在努力完成什麼嗎? – 2013-03-18 08:16:04