jquery 怎么让callback函数只运行一次

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("p").hide(1000,function(){
alert("The paragraph is now hidden");
});
});
});
</script>
</head>
<body>
<button type="button">Hide</button>
<p>This is a paragraph with little content.</p>
<p>This is a paragraph with little content.</p>
<p>This is a paragraph with little content.</p>
</body>
</html>

callback函数alert()一共提示了三次,我想让它只提示一次,需要如何修改代码?
有没有可能通过one()来实现?

慕运维8079593
浏览 254回答 3
3回答

jeck猫

$("p").hide(1000,function(){var n=$("p").index(this);if(n==0)alert("The paragraph is now hidden");});一、在你这个场景下one()是无法达到你的要求的二、你可以用n=?来灵活控制什么时候触发alert

月关宝盒

因为你有三个<p>啊,点击的时候三个都执行了,提示一次的话:$(document).ready(function(){$("button").click(function(){$("p").hide(1000);alert("The paragraph is now hidden");});});

偶然的你

其实可以用queue方法,不过有个投机取巧的:你在三个p标签外面套个div,比如设置id="pDiv" 然后 $("#pDiv").hide(1000,function(){ &nbsp;&nbsp;&nbsp;&nbsp;alert("The&nbsp;paragraph&nbsp;is&nbsp;now&nbsp;hidden"); &nbsp;&nbsp;&nbsp;&nbsp;});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery