0

テーブルに次のボタンがあります

<td><Button  id="approval_<?php echo $i; ?>" type="submit"  class="myclass btn success trr" ><span>Approve</span> </button>
</td>
<td><Button  id="approval_<?php // echo $i; ?>" type="submit"  class="smyclass btn failed trr" ><span>Deny</span> </button>
</td> 

オンクリックアクションを実行する必要があります

このようなもの

$('.myclass').click(function() {}

問題は、どのボタンがクリックされたかをどうやって見分けるのかということです。

4

5 に答える 5

1

ボタンに jQuery 関数hasClassを持つクラスが含まれているかどうかを確認できます。

$('.myclass').click(function() {
    if($(this).hasClass('success')){
        alert("Success!");
    }
});

クリックしたボタンがキーワードthisになります。$(this) を記述して jQuery でラップすることができます。これにより、便利な jQuery 関数を多数使用できるようになります。

于 2012-06-28T21:18:34.210 に答える
1

クリック関数内では、$(this) を使用してアクションが実行された要素を参照できます。

そう:

$('.myclass').click(function() {
    $(this).doStuff();
});

簡単な注意 - $(this) をキャッシュする必要があります。この方法では、何度でも参照できますが、DOM ルックアップは 1 回だけ実行されます。

次のように:

$('.myclass').click(function() {
    var $this = $(this);
    $this.doStuff();
    $this.doMoreStuff();
});
于 2012-06-28T21:19:52.610 に答える
0
$('.myclass').click(function() {
    // In here "this" refers to your element that was clicked.
    // You can do whatever you want with it from here.
    // If you want to use jQuery make sure to wrap it like $(this)
});

jQuery チュートリアルを見ることをお勧めします。jQuery がどのように機能するかについて多くのことを説明しているため、将来的に多くの時間を節約できます。

于 2012-06-28T21:21:43.147 に答える
0

このようにして、インデックスを取得し、クリックされたのが「成功」か「失敗」かを定義できます。

$('.myclass').click(function() {
    // Get the index
    var index = $(this).attr('id').split('_')[1];

    // Check success or failed
    if ($(this).hasClass('success')) {
        // success
    } else {
        // failed
    }
});
于 2012-06-28T21:23:18.263 に答える
0

私はこのビットに問題があると予測しています:

id="approval_<?php echo $i; ?>"

ボタンごとに 1 回、合計 2 回発生します。この理由により、(とりわけ) ID を要素が共有することは望ましくありません。2 番目のボタンのコードを次のように変更します。

id="denial_<?php echo $i; ?>"

次に、clickイベント ハンドラー内で、動作の id を確認できます。

$('.myclass').click(function() {

    var action = this.id.split('_')[0];
    var identifier = this.id.split('_')[1];

    if (action == 'approval') {

        if (identifier == 'abc123') {

            alert('Why is the rum gone!?');

        } else if (identifier == 'def456') {

            alert('I have bath salts, wanna party?');

        }

    } else if (action == 'denial') {

        alert('Fact: Picture messaging is for lovers!');

    }

});
于 2012-06-28T21:28:13.303 に答える