我有动态生成的div标签,如下所示:
<div class="widget widget_1">
<div class="widget_header widget_header_1"></div>
<div class="widget_sub_header widget_sub_header_1"></div>
<div class="widget_content widget_content_1"></div>
<div class="widget_footer widget_footer_1"></div>
<div>
<div class="widget widget_1">
<div class="widget_header widget_header_1"></div>
<div class="widget_sub_header widget_sub_header_1"></div>
<div class="widget_content widget_content_1"></div>
<div class="widget_footer widget_footer_1"></div>
<div>
<div class="widget widget_6">
<div class="widget_header widget_header_6"></div>
<div class="widget_sub_header widget_sub_header_6"></div>
<div class="widget_content widget_content_6"></div>
<div class="widget_footer widget_footer_6"></div>
<div>
这些div选项卡将根据用户选择生成,所以我不知道他们一次会在屏幕上有多少,我只知道他们可以在屏幕上有许多相同的小部件和/或一次在屏幕上出现差异。
当我将鼠标悬停在任何这些小部件上时,我试图获得悬停效果。我尝试了以下操作,但是当鼠标悬停在.widget
上时没有任何反应。
$(".widget_content").on({
mouseenter: function () {
alert("enter");
},
mouseleave: function () {
alert("leave");
}
});
知道我做错了吗?
答案 0 :(得分:3)
如果动态添加元素,请使用delegated events approach:
$("body").on({
mouseenter: function() {
alert("enter");
},
mouseleave: function() {
alert("leave");
}
}, ".widget_content");
您可以使用body
的任何静态父元素代替.widget_content
。
答案 1 :(得分:1)
工作演示 http://jsfiddle.net/Ex3M6/
试试$(document).ready(function() {
希望它符合您的原因:)
<强>代码强>
$(document).ready(function() {
$(".widget_content").on({
mouseenter: function() {
alert("enter");
},
mouseleave: function() {
alert("leave");
}
});
});
答案 2 :(得分:0)
使用此:
$(".widget_content").hover(
function () {
alert("enter");
},
function () {
alert("leave");
}
);
答案 3 :(得分:0)
除了鼠标悬停之外,还要在div标签上添加文字,而且容器div
标签也应正确贴上标签(例如</div>
)。
<div class="widget widget_1">
<div class="widget_header widget_header_1">dfsdfsdf</div>
<div class="widget_sub_header widget_sub_header_1">sdfsdf</div>
<div class="widget_content widget_content_1">sdfsdf</div>
<div class="widget_footer widget_footer_1">sdfsdfsdf</div>
</div>
<div class="widget widget_1">
<div class="widget_header widget_header_1">sdfsdf</div>
<div class="widget_sub_header widget_sub_header_1">ggggg</div>
<div class="widget_content widget_content_1">aaaaa</div>
<div class="widget_footer widget_footer_1">ssss</div>
</div>
<div class="widget widget_6">
<div class="widget_header widget_header_6">sssss</div>
<div class="widget_sub_header widget_sub_header_6">fgggg</div>
<div class="widget_content widget_content_6">fdff</div>
<div class="widget_footer widget_footer_6">dfgdfgdfg</div>
</div>
使用此更改后,您的jquery代码可以正常工作
<script language="javascript" type="text/javascript" src="jquery-1.8.2.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$("div[class^='widget_content']").on({
mouseenter: function () {
alert("enter");
},
mouseleave: function () {
alert("leave");
}
});
});
</script>