jQuery当整个div可点击时,如何在div中创建链接

时间:2013-10-09 08:21:01

标签: javascript jquery css html

我正在使用此代码使整个div可以点击。

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

div中有大约4个链接,我希望它们能够正常工作,所以如果单击div,则会调用/点击类.main的链接。我想在其他时候这样做在div中单击链接..它们应该作为链接工作。

4 个答案:

答案 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");
});