web-dev-qa-db-ja.com

jQuery:click();を呼び出します。別のclick();から

このようなことをすることは可能ですか?

$('#idone').click(function(){
 alert('we do stuff!');
});

$('#idtwo').click(function(){
 $('#idone').click();
});

...私はそうではないと思いますが、可能な回避策はありますか?

!UPD:

まぁ、いいよ。もう少し複雑です。私はjCarouselアナログをインストールしています-JQueryTOOLS-スクロール可能-それがリンクの名前だと思います: http://flowplayer.org/tools/demos/scrollable/gallery.html

Click()イベントが何らかの形でハードコードされていると思います。親指をクリックすると、プラグインが中央の位置にスクロールします。次に、別のクリックイベントをバインドして、大きな画像を表示できるようにしました。上記のリンクの例と同様に機能します

この大きな画像をクリック可能にする必要があるので、クリックするとギャラリー内の次の画像に進むことができます。これを実行しましたが、この大きな画像をクリックすると、カルーセルが自動的に次の親指までスクロールするようにする必要があります。したがって、コードを単純化しても、本質はまだ次のようになります。

$('#idone').click(function(){
 alert('we do stuff!');
});

$('#idtwo').click(function(){
 $('#idone').click();
});

ここで、#idoneはギャラリーの親指、#idtwoはそのプレビュー画像です。デフォルトでどの関数がクリックにバインドされているのかわかりません。別のこと:私の推測では、同じイベントを同じオブジェクトにバインドすると、前のイベントが置き換えられるはずです-必ずしもそうとは限りません。そして、mouseup\downなどではなく、正確にclick();であると確信しています。

$('#idone').click();

ページの読み込み時にトリックを実行し、カルーセルはid = "idone"で親指までスクロールします

念のため:jquery-1.3.2.js

皆さんの答えに感謝します、そして私の下手な英語をすみません、ブラッシュアップする時間はありません(:

!UPD:

oK!だから私はこれをあきらめました))しかし、この質問を閉じてこの議論を終わらせるために私は知らなければなりません。それが可能であると書き、変形を提案したすべてのあなたの人々。それらを試しましたか?!彼らは本当にあなたのために働きますか?誰が間違っているのですか?そして-とにかくありがとう!

15
dr3w

これは別の可能性です:

$('#idone').click(function(){
 alert('we do stuff!');
});

$('#idtwo').click(function(){
 $('#idone').trigger('click');
});

edit:あなたのコードはすでにそのように機能するはずです。

19
RamboNo5

両方のイベントによって呼び出される個別の関数を定義しますか?

function doSomething() {
 alert('we do stuff!');
}

$('#idone').click(doSomething);    
$('#idtwo').click(doSomething);

または単に

$('#idone, #idtwo').click(doSomething);

[編集-jQueryスクロール可能]

JQuery Scrollableのサムネイルでこれを使用してみましたか?

$('#idone').next(); 

(#idoneはスクロール可能だと思います)

5
Groo

実際に呼び出す:

_$("#idone").click();
_

_#idone_でclick()イベントハンドラーを呼び出します。

そうは言っても、このようなイベントハンドラーをチェーンすると、他の誰かがコードを読んで混乱する可能性があるため、別の関数に分割することをお勧めします。例えば:

_$('#idone').click(idone_click);
$('#idtwo').click(idtwo_click);

function idone_click() {
  alert("id one click");
}

function idtwo_click() {
  idone_click();
}
_

もちろん、単に両方に同じことをさせたい場合は、次のようにすることができます。

_$("#idone, #idtwo").click(function() {
  alert(this.id + " clicked");
});
_
1
cletus

そうですか。次に、このようなことをしたいと思うかもしれません。

$('#image_wrap img').click(function(){ // big image is clicked
    // figure out the active element of the items below
    $active_element = $('.scrollable .items .active');

    // move along to the element to its right
    $nextone = $active_element.next();

    // trigger a click on this element
    $nextone.trigger('click');
});

そうすれば、大きな画像をクリックすると、リスト内の次のプレビュー画像のクリックイベントがトリガーされます。
(その要素が存在しない場合、jQueryはNiceであり、何もしません-エラーはありません。)

1
RamboNo5

これは簡単に行うことができます Jquery Trigger 。it指定されたイベントタイプの一致した要素にアタッチされたすべてのハンドラーと動作を実行します。あなたの例によると

$('#idone').click(function(){
 alert('I Am First Button');
});

$('#idtwo').click(function(){
 //THIS WILL CALL FIRST METHOD
 $('#idone').trigger('click');
 alert("I Am Second One .!");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="idone">PASS 1</span>
<br>
<button id="idtwo">PASS 2</span>
1
TarangP