當我點擊.myClass我想'a'出現在#消息之前,不幸的是'a a a'出現而不是它。jquery,我的功能執行很多時間而不是一個
我的CSS是:
#message{
width: 80%;
height: 10%;
border-style:solid;
border-width:5px;
}
.hideIt{
visibility:hidden;
}
,我的代碼是:
<div id="message">test1 <span class="myClass hideIt">test2</span></div>
<script src="jquery.js"></script>
<script>
$(function() {
test = function() { $('#message').before('a '); }
$(document).on('mouseover', '#message', function() {
var el = $(this);
el2 = el.children('.myClass');
el2.removeClass('hideIt');
el2.on('click',test);
el.on('mouseout', function() {
el2.addClass('hideIt');
});
});
});
</script>
這裏小提琴鏈接:http://jsfiddle.net/TDJVw/
您正在註冊一個點擊處理程序,每次#message被徘徊。你需要.off()那個點擊處理程序,或者把它放在mouseover處理程序之外(取決於你想完成什麼) – yoavmatchulsky 2013-04-09 07:48:50
@yoavmatchulsky是.off()的正確語法:$(document).off( 'mouseout','#message',test); ?? – 2013-04-09 08:01:34