4

私はこのHTML構造を持っています

<div class="buttons">
    <button data-icon="ui-icon-disk" class="save">Save1</button>
    <button data-icon="ui-icon-check" class="ok">OK1</button>
    <button data-icon="ui-icon-trash" class="delete">Delete1</button>
    <button data-icon="ui-icon-close" class="close">Close1</button>
</div>

ページにはこのようなブロックがたくさんあります。
一部のボタンには、クリック ハンドラー関数 (保存ボタンと削除ボタン) が付属しています。

私がやりたいことは、誰かがOKボタンをクリックすると、対応する 保存ボタンのクリックバウンド関数が実行されることです。

私のコード:

$('.save').click(function(){
    alert('save');
});
$('.ok').click(function(){
    $('.save').click();
});

これは間違っています。OKボタンをクリックすると、同じボタン グループ内の保存ボタンだけでなく、すべての保存ボタンが起動します。

私の問題を示すデモ。

4

3 に答える 3

5

$(this).siblings('.save').click()ドキュメント全体で一致するすべてのボタンではなく、クリックされたボタンの兄弟のみを選択するために使用します。

デモ: http://jsfiddle.net/ThiefMaster/nMnm7/2/
ドキュメント: http://api.jquery.com/siblings/

于 2012-06-15T13:46:10.637 に答える
4

兄弟を使う

$('.ok').click(function(){
    $(this).siblings('.save').click();
});

デモ

于 2012-06-15T13:47:51.477 に答える
1

http://api.jquery.com/siblings/

$('.ok').click(function(){
   $(this).siblings(".save").click();
});
于 2012-06-15T13:48:50.993 に答える