今天在学习《锋利的JQuery》时遇到了一个问题,在4.1.3合成事件中,使用toggle,出现了一闪而过的现象。
工程源码:
<script>
$(document).ready(function() {
$("#head").toggle(function() {
$(this).next('span').show();
},
function() {
$(this).next('span').hide();
}
);
});
</script>
</head>
<body>
<div id="head">
<h1>jqurey</h1>
<span>hello, world</span>
</div>
</body>
和书中源码对比,发现除Jquery不同外,其余都相同,判断为Jquery版本造成的。书中源码版本为1.7.1,工程中使用的为2.4.1,切换版本,能正常工作。
效果:,点击后,再次点击,。
若要在2.1.4下工作,则使用:
$(function(){
$("#head h1").click(function() {
$(this).next('span').toggle();
});
});
另附添加高亮代码:
css:
.hightlight {
background: #ff3300;
}
js:
$(function() {
$("#head h1").click(function(){
if($(this).hasClass("hightlight")){
$(this).removeClass("hightlight");
}else{
$(this).addClass("hightlight");
}
$(this).next().toggle();
});
});
或者
$(function(){
$("#head h1").click(function() {
$(this).toggleClass('hightlight');
$(this).next('span').toggle();
});
});