我正在使用如下所示的事件冒泡来在鼠标悬停时调整h3
标记文本的大小,并在鼠标悬停在文本上时恢复原始大小。但它不起作用。
$('body').hover(function (event) {
if ($(event.target).is('h3')) {
$(event.target).hover(function () {
$(this).css("font-size", "40px");
},
function () {
$(this).css("font-size", "40px");
});
}
});
我是新手。所以可能有一个愚蠢的错误。请指出。 先谢谢你们。
答案 0 :(得分:3)
您只需将事件应用于h3
元素本身。试试这个:
$("h3").hover(function() {
$(this).css("font-size", "40px");
},
function() {
$(this).css("font-size", "20px");
});
此外,最好使用CSS类来修改字体的大小,因为它更好地分离了关注点:
$("h3").hover(function() {
$(this).addClass("big-text");
},
function() {
$(this).removeClass("big-text");
});
// CSS
h3 { font-size: 12px; }
.big-text { font-size: 40px; }
<强>更新强>
由于h3
元素是动态加载的,因此您需要将on
与委托一起使用。试试这个:
$("body").on("hover", "h3", function(e) {
if (e.type == "mouseenter") {
$(this).css("font-size", "40px");
}
else { // mouseleave
$(this).css("font-size", "20px");
}
});
我在这里使用了body
作为主选择器,但您应该使用与页面加载时可用的h3
元素最接近的元素。
答案 1 :(得分:1)
试试这个:
$(document).on('mouseenter', 'h3', function(event) {
$(this).css("font-size", "40px");
})
$(document).on('mouseleave', 'h3', function(event) {
$(this).css("font-size", "20px");
})
或:
$(document).on({
mouseenter: function() {
$(this).addClass('aClass')
},
mouseleave: function() {
$(this).removeClass('aClass')
}, 'h3')