我正在尝试将其包装成一个函数:
//Entire Div Clickable
function clickableDiv(){
window.location = $(this).find("a").attr("href");
return false;
}
然后通过以下方式调用它:
$("div.promo1").click(function(){
clickableDiv();
});
但它会返回以下网址:www.mywebsite.com/undefined
任何想法我做错了什么?
感谢。
答案 0 :(得分:4)
麻烦的是你正常地调用clickableDiv
,而不是将它绑定到事件。您是从事件处理程序运行它,而不是将其设置为作为事件处理程序。这意味着this
未设置为元素。
您应该将该函数设置为事件处理程序。
$("div.promo1").click(clickableDiv);
答案 1 :(得分: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);