为什么javaScript / jQuery似乎忽略了我的事件冒泡IF语句
Why does javaScript / jQuery seem to ignore my IF statement on event bubbling?
我确信这只是我没有正确理解JavaScript基础知识。但是有人能指出为什么我有这样的印象,我的if语句计算为真,事件冒泡,即使if语句内的语句应该计算为假吗?
如果(sFormula> 168)似乎工作的预期当我按下html 标签,但如果我快速点击它,一切似乎都疯了。
这是一个jsFiddle的代码:http://jsfiddle.net/twimB/pGHrP/,下面只是整个代码的一个片段。
如果有人能花时间解释一下,我将不胜感激。
谢谢。Html
<a href="#" id="right">»</a>
jQuery $("#right").click(function(event){
event.stopImmediatePropagation();
if(busy == false){
busy = true ;
var parentMargin = $(".wrap").offset().left;
var parentWidth = $(".wrap").width();
var carouselMargin = $(".block").offset().left;
var carouselWidth = $(".block").width();
var rFormula = carouselWidth - ((parentMargin - carouselMargin) + parentWidth);
$(".pLeft").text("");
$(".pRight").text("if ( rFormula > 0 ) {perform slide} fFormula is: " + rFormula);
if(rFormula > 168){
$(".block").animate({"left": "-=168px"}, "slow");
}
busy = false ;
}
});
.animate()
方法不会停止脚本的执行。发生的事情是,它开始动画,脚本继续执行,busy
立即设置为false。
你只需要在动画结束后使用回调函数设置标志:
if(rFormula > 168){
busy = true;
$(".block").animate({"left": "-=168px"}, "slow", function() { busy = false });
}
(注意,我还移动了这里的标志设置,因为在动画开始之前设置它没有任何好处。)
Demo: http://jsfiddle.net/pGHrP/1/(我只更新了右键)
相关文章:
- 为什么我的点击事件没有使用 react js 触发
- 为什么不'我的窗口滚动事件根本没有启动.其他答案没有解决问题
- 如何使用我的Jquery代码创建委托事件侦听器
- 为什么动态加载的事件在我的代码中不能正常工作
- onbeforeunload事件在我的代码中没有触发,但其他示例可以工作
- 为什么我的on change事件在ie9上返回空
- 在我的JavaScript模块中绑定一个点击事件
- 如何在javascript中调用onclick事件?我没有'我不想在我的HTML页面中使用任何事件
- 鼠标事件,我的代码出了什么问题
- 我可以让我的网站的内容可编辑区域对安卓股票浏览器上的触摸事件更敏感吗
- 为什么我的onchange事件发生在页面加载时,而不是在触发时
- 为什么我的Jquery.ajax调用会触发错误事件
- 为什么点击或更改事件都没有触发我的函数
- 为什么我从 JSLint 获得从事件调用的函数的“超出范围”
- 将 OnClick 事件附加到我的标签 - JavaScript.亚德夫.
- 为什么IE浏览器不喜欢我的点击事件
- 为什么我的点击事件没有触发
- 我的链接按钮的OnClick事件永远不会被触发
- 将我的nextPage()函数编写为全局函数,以便onclick事件可以访问它
- 为什么我的javascript鼠标事件没有启动