57

onclickメソッドを持つ要素があります。

別の関数内でそのメソッドをアクティブ化 (または、この要素のクリックを偽造) したいと思います。

これは可能ですか?

4

11 に答える 11

78

要素を選択したら、click() を呼び出すことができます

document.getElementById('link').click();

参照: https://developer.mozilla.org/En/DOM/Element.click

これが IE で動作するかどうかは覚えていませんが、動作するはずです。近くに Windows マシンがありません。

于 2008-12-07T12:18:29.433 に答える
61

JQuery を使用している場合は、次のことができます。

$('#elementid').click();
于 2008-12-07T12:21:13.983 に答える
8

私はあなたの質問を誤解している可能性がありますが、はい、これは可能です。私がそれを行う方法は次のとおりです。

var oElement = document.getElementById('elementId');   // get a reference to your element
oElement.onclick = clickHandler; // assign its click function a function reference

function clickHandler() {
    // this function will be called whenever the element is clicked
    // and can also be called from the context of other functions
}

これで、この要素がクリックされるたびに、コードclickHandlerが実行されます。同様に、他の関数のコンテキスト内から関数を呼び出すことで、同じコードを実行できます (またはclickHandler、他の要素によってトリガーされたイベントを処理するために割り当てることもできます)>

于 2008-12-07T13:03:10.763 に答える
6

jQuery を使用している場合は、関数を使用する必要があるため、次の.triggerようになります。

element.trigger('click');

http://api.jquery.com/trigger/

于 2012-11-23T10:20:30.120 に答える
6
var clickEvent = new MouseEvent('click', {
  view: window,
  bubbles: true,
  cancelable: true
});
var element = document.getElementById('element-id'); 
var cancelled = !element.dispatchEvent(clickEvent);
if (cancelled) {
  // A handler called preventDefault.
  alert("cancelled");
} else {
  // None of the handlers called preventDefault.
  alert("not cancelled");
}

element.dispatchEventすべての主要なブラウザーでサポートされています。simulateClick()上記の例は、 MDNのサンプル関数に基づいています。

于 2008-12-07T12:34:28.230 に答える
3

これは、Prototype や JQuery などの JavaScript ライブラリを使用して、ブラウザー間の違いを抽象化する必要がある場所の完璧な例です。

于 2008-12-07T12:38:54.790 に答える
2

「onclick」を呼び出すだけです!

html の例を次に示します。

<div id="c" onclick="alert('hello')">Click me!</div>
<div onclick="document.getElementById('c').onclick()">Fake click the previous link!</div>
于 2008-12-07T12:28:16.997 に答える
2

IE にはfireEvent()メソッドがあります。それが他のブラウザで機能するかどうかはわかりません。

于 2008-12-07T12:29:32.283 に答える
1

私はjQueryを使用していませんが、IIRC、言及された最初のメソッドはonclickハンドラーをトリガーしません。

onclickイベントの詳細を使用していない場合は、関連するメソッドを直接呼び出します。

于 2008-12-07T12:27:26.560 に答える
-3

要素の onclick 属性を取得してから eval に渡すこともできます。これは、評価に対する大きなタブーにもかかわらず機能するはずです。以下にサンプルを載せます

eval(document.getElementById('elementId').getAttribute('onclick'));
于 2010-08-16T21:42:46.333 に答える