2013-10-09 38 views
1

我正在使用此代碼使整個div可點擊。jQuery如何在整個div可點擊時在div工作中創建鏈接

$(document).on('click', '.clickable', function (e) { 
    window.location = $(this).find('a.main').attr("href"); 
    return false; 
}); 

有大約4鏈接在div,我希望他們能夠按預期運行,所以如果在div點擊帶班.main被稱爲鏈路/點擊。我想使它所以其他的時候鏈接被點擊內部..他們工作作爲一個鏈接應該。

+1

做一個搗鼓您的問題 – Rex

+0

使用'e.stopPropagation();' – 812621

回答

2

使用e.stopPropagation();防止點擊背景clickables當你點擊一些DIV

$(document).on('click', 'div.clickable', function (e) { 
    window.location.href = $(e.target).find('a.main').attr("href"); 
    e.stopPropagation(); 
    return false; 
}); 

更新:檢查jsFiddle

+0

完美。謝謝。 – user2861829

+0

雖然得到一個錯誤... TypeError:e.stopPagination不是一個函數 – user2861829

+0

mispell,使用'e.stopPropagation();'沒有分頁! – Omid

1

根本就不返回false,如果鏈接本身被點擊:

$(document).on('click', '.clickable', function (e) { 
    // only execute if no Link was clicked 
    if (!$(e.currentTarget).is('a')) { 
     window.location = $(this).find('a.main').attr("href"); 
     return false; 
    } 
}); 

這將執行您的腳本只有當DIV被點擊,而不是點擊鏈接。因此,div內的鏈接將像往常一樣運行。

1
$(document).on('click', '.clickable', function (e) { 
    window.location = $(this).find('a.main').attr("href"); 
    return false; 
}); 

$(document).on('click', '.clickable a', function (e) { 
    e.stopPropagation(); 
}); 

不要從錨點傳播事件。

+0

完美運作。謝謝。 – user2861829

相關問題