0

クラス subcat の下に複数の div があります。そして、クラスにクリックイベントがあります。クリックされたdivを取得したい。

<div class="subcat"><a href="#">abc</div>
<div class="subcat"><a href="#">def</div>
<div class="subcat"><a href="#">ghi</div>
<div class="subcat"><a href="#">jkl</div>

私のjquery関数は

$('.subcat').click(function(element) {
    element.preventDefault();
    getsubcat(element);
});

しかし、要素はnullを示しています。要素の代わりにこれを使用しようとしましたが、それも機能しませんでした。

$('.subcat').click(function(element) {
    this.preventDefault();
    getsubcat(this);
});

私は以前に以下のように書いていましたが、完全にうまく機能していました。

<div class="subcat"><a href="#" onclick="getsubcat(this)">abc</div>
<div class="subcat"><a href="#" onclick="getsubcat(this)">def</div>
<div class="subcat"><a href="#" onclick="getsubcat(this)">ghi</div>
<div class="subcat"><a href="#" onclick="getsubcat(this)">jkl</div>
4

3 に答える 3

4

イベント ハンドラーの最初のパラメーターはeventオブジェクトなので、それを呼び出す必要がありますpreventDefault()

thisイベントハンドラー内では、ハンドラーが登録された dom 要素を指すため、に渡すことができますgetsubcat

$('.subcat').click(function(event) {
    event.preventDefault();
    getsubcat(this);
});
于 2013-09-13T07:23:32.430 に答える
2

イベントを渡す要素を渡さないでください。デフォルトを防止する場合も同様です。これをクリックすると、または $(this) がクリックされた要素を参照します。

$('.subcat').click(function(event) {
        event.preventDefault();
        getsubcat($(this));
    });
于 2013-09-13T07:24:18.757 に答える
0
$('.subcat').click(function(element) {
    element.preventDefault();
    getsubcat($(this));
});
于 2013-09-13T07:24:49.957 に答える