我在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>
答案 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));
});