3

我正在尝试将其包装成一个函数:

//Entire Div Clickable
function clickableDiv(){
window.location = $(this).find("a").attr("href");
return false;
}

然后通过以下方式调用它:

$("div.promo1").click(function(){
clickableDiv();
});

但它返回一个网址:www.mywebsite.com/undefined

任何想法我做错了什么?

谢谢。

4

2 回答 2

4

问题是您clickableDiv正常调用,而不是将其绑定到事件。您正在从事件处理程序运行它,而不是将其设置事件处理程序。这意味着this未设置元素。

您应该将该函数设置为事件处理程序。

$("div.promo1").click(clickableDiv);
于 2011-03-24T17:53:59.930 回答
1
function clickableDiv(div) {
    window.location = $(div).find("a").attr("href");
}

$("div.promo1").click(function() {
    clickableDiv(this);
});

您必须将对 DIV 的引用传递给clickableDiv函数。


更新:替代解决方案:

function clickableDiv() {
    window.location = $(this).find("a").attr("href");
}

$("div.promo1").click(clickableDiv);
于 2011-03-24T17:54:30.583 回答