23

アンカータグのあるページがあります。私のJavaScriptでは、HREFいくつかのif-else条件に基づいて、アンカータグの属性を動的に設定しています。次に、アンカータグのクリックイベントをプログラムで呼び出します。以下のコードを使用しましたが、成功しませんでした。

var proxyImgSrc="CostMetrics.aspx?Model=" + model +"&KeepThis=true&TB_iframe=true&height=410&width=650";

document.getElementById("proxyAnchor").href=proxyImgSrc;
document.getElementById("proxyAnchor").onclick;

誰かが先に進む方法を教えてもらえますか?このリンクにjQueryライトボックスの実装(thickbox)があります。

親切なアドバイス。前もって感謝します。

4

6 に答える 6

71

jQuery がインストールされている場合は、次のようにしてください。

$('#proxyAnchor')[0].click();

[0] を使用して最初の要素を指定していることに注意してください。jQuery セレクターは jQuery インスタンスを返し、href ではなくクリック JavaScript ハンドラーのみを呼び出す click() を呼び出します。実際の要素 ([0] によって返される) で click() を呼び出すと、href などのリンクがたどられます。

違いを説明する例については、こちらを参照してください: http://jsfiddle.net/8hyU9/

元のコードが機能しない理由については、おそらく呼び出しているためであり、呼び出しonclickていないためですonclick()。括弧がないと、JavaScript はonclickプロパティに割り当てられたものを返しますが、実行しようとしません。

次の簡単な例を試して、私が何を意味するかを確認してください。

var f = function() { return "Hello"; };     
alert(f);
alert(f());

1 つ目は関数の実際のテキストを表示し、2 つ目は期待どおり "Hello" という単語を表示します。

于 2009-06-11T12:07:32.007 に答える
12

次のようにクリックイベントを呼び出す必要があります。

document.getElementById("proxyAnchor").click();
// $('#proxyAnchor').click();

ただし、必要に応じて、ウィンドウの場所をリダイレクトページに設定する必要があります。

于 2009-06-11T12:08:19.960 に答える
1

clickイベントを呼び出したいと思います。「onClick」ではありません。また、メソッドを呼び出すときは、必ず括弧()を含めてください。メソッド((および)で終わる)と、(および)で終わらない属性およびプロパティを混同しないでください。

// Using jQuery - Which you tagged...
$("#proxyAnchor").attr("href", proxyImgSrc).click();
于 2009-06-11T12:06:34.817 に答える
1

これがあなたが求めているものだと思います:

var proxyImgSrc="CostMetrics.aspx?Model=" + model +"&KeepThis=true&TB_iframe=true&height=410&width=650";
$("#proxyAnchor").attr('href', proxyImgSrc).trigger("click");;
于 2009-06-11T12:12:47.580 に答える
1

すぐにページを変更するには、次のようにすることもできます。

var proxyImgSrc= "CostMetrics.aspx?Model=" + model + "&KeepThis=true&TB_iframe=true&height=410&width=650";
window.location = proxyImgSrc;

W3 Schools の例を次に示します: http://www.w3schools.com/js/tryit.asp?filename=tryjs_location

于 2009-06-11T12:20:43.333 に答える