我有鼠标悬停和mouseout事件,我想要一直绑定。即如果我鼠标悬停一个元素,然后鼠标悬停,然后鼠标悬停,依此类推,这些事件处理程序仍应触发。我该怎么解决这个问题?现在他们只绑定一次......
$welcome = $("#welcome");
$welcomeClone = $("#welcome").clone();
$welcome.mouseover(function() {
$welcome.css("height","400px");
});
$welcome.mouseout(function() {
$welcome.hide();
$("#vertical-center").append($welcomeClone)
});
答案 0 :(得分:1)
原因是因为每个mouseout
隐藏了$welcome
元素 - 然后将其复制到#vertical-center
- 克隆元素没有相同的事件处理程序。您应该使用事件委派:
$welcome = $("#welcome");
$welcomeClone = $("#welcome").clone();
$("#vertical-center").on("mouseover", "#welcome", function() {
$(this).css("height", "400px");
}).on("mouseout", function() {
$(this).hide();
$("#vertical-center").append($welcomeClone)
});