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);
});

但是该元素显示为空。我尝试使用它而不是元素,但这也不起作用。

$('.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 或 $(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 回答