0

私は次のコードを持っています:

<input id="unassignButton" class="unassignButton" type="button" value="[[Unassign]]" onclick="javscript:unassignImage({$file.sid},{$listing_sid});"/>

エンドコードでは、そのような複数の入力が生成される可能性があります{$file.sid},{$listing_sid}

だから私は例えば:

<input class="unassignButton" type="button" value="Unassign" onclick="javscript:unassignImage(1533,185);">
<input class="unassignButton" type="button" value="Unassign" onclick="javscript:unassignImage(1558,290);">

javscript:unassignImage次に、適切なパラメータを考慮して、unassignButtonIDを持つすべての入力の「onclick」関数を1つずつ呼び出すリンクを作成します。unassignImage(1558,290)...

どうやってやるの?

よろしくお願いします、Arky

4

2 に答える 2

5
$("#unassignAll").on('click', function () {
    $(".unassignButton").trigger('click');
});

これclickにより、すべての割り当て解除ボタンにバインドされたコールバックが同時に呼び出されます。

于 2013-03-14T15:07:51.003 に答える
1

マークアップではなく、javascript内でクリックハンドラーを割り当てる方がよい場合があります。unassignButtonまた、IDは常に一意である必要がありますが、クラスは共有できるため、各ボタンに同じIDを指定しないようにしてください。

データ属性のマークアップ:

<input id="{someUniqueId}" class="unassignButton" type="button" value="[[Unassign]]" data-fileSid="{$file.sid}" data-listingSid="{$listing_sid}"/>

javascript:

$(document).ready(function(){
    // bind click handler to each button using the data attributes above
    $('input.unassignButton').on('click', function(){
        unassignImage($(this).data('fileSid'),$(this).data('listingSid'));
    });

    // bind click handler to 'unassignAll' button/link (assumes you have a button with class 'unassignAll'
    $('input.unassignAll').on('click', function(){
        $('input.unassignButton').trigger('click');
    });
});

データ属性の詳細については、.data()のJqueryドキュメントを参照してください

于 2013-03-14T15:13:14.527 に答える