0

クリックイベントオブジェクトをパラメータとして期待する関数があります。例えば

toggle: function (e) {
//does all the required work and then calls cancelEvent

this.cancelEvent(e);//IMPORTANT TO HANDLE LOCAL ANCHORS
    },


cancelEvent:function(e) {
    if (!e) e = window.event;
        if (e.preventDefault) {
        e.preventDefault();
                  } else {
            e.returnValue = false;
                  }
    },

ページの読み込み時にトグル関数を呼び出す必要があります。

イベントパラメータを渡さずに呼び出してみました。ただし、これを行うと、期待される機能が損なわれ、すべてが編集できなくなります。

とにかく、現在のイベントオブジェクトを取得して、それを関数に渡すことができますか?

または、ロードイベントもイベントリスナーに添付する必要がありますか?

どうすればいいのか教えてください。

お時間をいただきありがとうございます:)

4

2 に答える 2

1

jQueryを使用する必要さえありません。ブラウザーの JavaScript には、ネイティブの Event オブジェクトが含まれています。したがって、このようにトグル関数を直接呼び出すことができるはずです(定義されたスコープにアクセスできると仮定します)...

var fakeEvent = new Event('click');
toggle(fakeEvent);

十分にテストしてください。コードが、実際のユーザーのクリックによってトリガーされた場合にのみイベントが持つ特定のプロパティ値に依存している場合、これは機能しない可能性があります。

より良いオプションは、ページの読み込みとクリックの両方で共有される機能が、クリック イベント ハンドラー関数とページの読み込みロジックの両方から呼び出すことができる新しい関数に組み込まれるようにリファクタリングすることです。

于 2013-01-05T16:03:12.563 に答える
0

はい、jQuery を使用してイベントを作成できます。

var e = $.Event('click');
$element.trigger(e); // Triggers click event on element

に関するドキュメントを次に示します$.Event。次の方法で jQuery を使用してクリック イベントをトリガーすると、イベント オブジェクトも作成されます。

$element.click();
于 2013-01-05T09:54:22.407 に答える