【发布时间】:2015-04-21 09:00:45
【问题描述】:
我确定我忽略了某些东西,但在我替换触发 mouseenter 的锚标记中的 html 后,我似乎无法触发“mouseleave”事件。
在此处添加代码,但如果您访问下面的 JSFiddle 链接并将鼠标悬停在星形图标上,实际上会简单得多。
$(document).ready(function () {
$(document).on('mouseenter', '[id^=star-]', function () {
$('[id^=star-]').html('<span class="star star-empty"></span>');
}).on('mouseleave', '[id^=star-]', function () {
$('[id^=star-]').html('<span class="star star-full"></span>');
});
});
请参阅JSFiddle here。只需将鼠标悬停在星形图标上,您就会明白我的意思。
【问题讨论】:
-
$(document) 可能是错误的选择器...您真的想在文档上跟踪 mouseleave 吗?为什么不使用星星?
-
他在事件 '[id^=star-]' 之后声明选择器
-
在重新定义 html 内容时使用前缀属性选择器 (
id^=...) 而不是后缀选择器(例如id$=-full)。 -
@JochenSchultz 我相信你读错了。 $(document).on('mouseenter', '[id^=star-]', function () 跟踪 ID 以 'star-' 开头的元素。
-
应该是
$('[id$=-full]')等等。
标签: javascript jquery mouseenter mouseleave