找到点击事件在课堂上时点击了哪个div

时间:2013-09-13 07:22:18

标签: javascript jquery

我在class 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>

3 个答案:

答案 0 :(得分:4)

事件处理程序的第一个参数是event对象,因此您需要在其上调用preventDefault()

事件处理程序内的

this将指向处理程序注册到的dom元素,以便可以传递给getsubcat

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

答案 1 :(得分:2)

你没有传递你传递事件的元素,同样是为了防止默认,一旦点击这个或$(this)引用被点击的元素。

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

答案 2 :(得分:0)

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