[英]Why is .on() Not working as expected in jquery?
我刚刚开始学习jQuery。 下面是我尝试为动态添加的div元素附加事件“ mouseover”和“ mouseout”的代码。 但是,当我尝试在浏览器中运行此程序时,没有任何结果。 我不知道这是怎么回事...我搜索了使用jquery .on()的用法和语法,但没有令人满意的结果..谁能告诉我,如何使我的以下代码正常工作?
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function(){
$("#divid").on("mouseover",".test", function(){
$(this).css("background-color", "blue");
}).on("mouseout",".test", function(){
$(this).css("background-color", "white");
});
});
function AddBox(){
var div = $("<div></div>").addClass("test").text("Another box");
$("#divTestArea1").append(div);
}
</script>
</head>
<body>
<div id="divTestArea1">
<a href="javascript:void(0);" onclick="AddBox();">Add box</a>
<div class="test" id="divid">This is a colored box</div>
</div>
</body>
</html>
提前致谢...;-)
这里的问题
您将动态div添加到#divTestArea1
此处$("#divTestArea1").append(div);
但是您将事件委派给#divid
因此此搜索在<div id=divid>
内的div类测试中进行了搜索,该测试不在其中。
尝试这个
$("#divTestArea1").on("mouseover",".test", function(){
....
}
这样,您#divTestArea1
.test
div的mouseover事件委托给#divTestArea1
..这是我们所需要的..应该可以工作...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.