Jquery 单击事件激发,尽管类名已更改
我有一个关于jQuery的新手问题。为什么即使元素已更改了类,我也可以触发下面的单击事件?即使我将类从“edit”更改为“tide”,美元(“.edit”).click()仍在处理该元素Jquery 单击事件激发,尽管类名已更改,jquery,Jquery,我有一个关于jQuery的新手问题。为什么即使元素已更改了类,我也可以触发下面的单击事件?即使我将类从“edit”更改为“tide”,美元(“.edit”).click()仍在处理该元素 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/x
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".edit").click(function(){
console.log(this);
$(this).removeClass("edit").addClass("tide");
});
});
</script>
</head>
<body>
<div class="edit">Hi there</div>
</body>
</html>
无标题文件
$(文档).ready(函数(){
$(“.edit”)。单击(函数(){
console.log(this);
$(this.removeClass(“edit”).addClass(“tide”);
});
});
你好
谢谢大家! 单击事件绑定到元素,而不是类。在您的示例中,您是基于
编辑
类选择元素,然后将单击事件附加到这些元素。一旦附加到元素,它将保持附加状态,直到显式删除为止,而不管元素的CSS类将来如何更改
正如Nick Craver所指出的,jQuery的方法可以做您想做的事情。单击事件绑定到元素,而不是类。在您的示例中,您是基于
编辑
类选择元素,然后将单击事件附加到这些元素。一旦附加到元素,它将保持附加状态,直到显式删除为止,而不管元素的CSS类将来如何更改
正如Nick Craver所指出的,jQuery的方法可能会满足您的需要。如果您想要这种行为,请使用以下方法:
$(document).ready(function(){
$(".edit").live('click', function(){
console.log(this);
$(this).removeClass("edit").addClass("tide");
});
});
。现在,
$(“.edit”)
查找与当时的.edit
选择器匹配的元素并绑定到它们,这些单击事件处理程序决不依赖于之后的类名。使用选择器时,会在事件发生时进行评估,因此它确实很重要。如果需要该行为,请使用,如下所示:
$(document).ready(function(){
$(".edit").live('click', function(){
console.log(this);
$(this).removeClass("edit").addClass("tide");
});
});
。现在,$(“.edit”)
查找与当时的.edit
选择器匹配的元素并绑定到它们,这些单击事件处理程序决不依赖于之后的类名。与选择器一起,选择器在事件发生时进行计算,因此它确实很重要