3

これを関数にラップしようとしています:

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

そして、次のように呼び出します。

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

しかし、次の URL を返します: 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 に答える