我正在使用此代码使整个div可以点击。
$(document).on('click', '.clickable', function (e) {
window.location = $(this).find('a.main').attr("href");
return false;
});
div中有大约4个链接,我希望它们能够正常工作,所以如果单击div,则会调用/点击类.main
的链接。我想在其他时候这样做在div中单击链接..它们应该作为链接工作。
答案 0 :(得分:2)
点击某些e.stopPropagation();
DIV
可防止点击后台可点击内容
$(document).on('click', 'div.clickable', function (e) {
window.location.href = $(e.target).find('a.main').attr("href");
e.stopPropagation();
return false;
});
更新:检查jsFiddle
答案 1 :(得分: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中的链接会像往常一样运行。
答案 2 :(得分: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();
});
不要传播来自锚点的事件。
答案 3 :(得分:0)
http://jsfiddle.net/HerrSerker/3qen2/
$(document).on('click', '.clickable a', function (e) {
e.stopPropagation();
});
$(document).on('click', '.clickable', function (e) {
self.location = $(this).find('a.main').attr("href");
});