jQuery点击运行一次
jQuery click runs one time
我正在开发一个带有缩略图的jQuery库,我有两个箭头可以"滚动"这些缩略图。我第一次尝试点击事件,但我的动画只运行了一次。
我在网上搜索了一下,发现了.on( 'click' )
事件。我试过了,但没有结果。即使使用.off( 'click' )
删除之后的事件。
有人能帮我吗?
$("#top_slide_button").on( 'click', function () {
$("#slide_frame").animate( { marginBottom: -50 }, 200);
$("#top_slide_button").off( 'click' );
});
$("#bottom_slide_button").on( 'click', function () {
$("#slide_frame").animate( { marginTop: -50 }, 200);
$("#bottom_slide_button").off( 'click' );
});
你可以试试这个:
$("#top_slide_button").off( 'click' ).on( 'click', function () {
$("#slide_frame").animate( { marginBottom: -50 }, 200);
});
$("#bottom_slide_button").off( 'click' ).on( 'click', function () {
$("#slide_frame").animate( { marginTop: -50 }, 200);
});
您需要使用动画的相对值
动画特性也可以是相对的。如果提供了一个值前导的+=或-=字符序列,则目标值为通过将电流加上或减去给定的数字来计算属性的值。
$("#top_slide_button").on('click', function () {
console.log('click')
$("#slide_frame").stop(true).animate({
marginTop: '-=50'
}, 200);
});
$("#bottom_slide_button").on('click', function () {
$("#slide_frame").animate({
marginTop: '+=50'
}, 200);
});
演示:Fiddle
您的问题是边距设置为50,将其向下移动到50,如果您再次单击它,它将保持在50。你需要增加页边空白(每次加50(。
即:
$("#top_slide_button").on('click', function () {
$("#slide_frame").stop(true).animate({
marginTop: '-=50'
}, 200);
});
$("#bottom_slide_button").on('click', function () {
$("#slide_frame").animate({
marginTop: '+=50'
}, 200);
});
http://jsfiddle.net/PbBq2/
相关文章:
- 使用每500ms运行一次的jquery函数是个好主意吗
- For循环在Jquery中只运行一次
- 谷歌图表在运行应用程序时只能显示一次
- 使函数只运行一次(Javascript)
- 更改路由后,运行一次js脚本
- 只运行一次提取的脚本
- 可能只在for循环内部运行一次代码块
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- 在Flask中使用.getJSON请求时,只运行一次命令
- 运行“;非“;单击另一个函数中的函数仅一次
- JavaScript只有在最后一次被调用时才运行函数
- 数据互绑定问题:转换器只运行一次,无法绑定元素的 ID
- 您可以在节点.js上一次运行多个应用程序吗?
- 如何一次运行一次循环javascript
- 从命令行一次运行大量摩卡测试的好方法是什么
- 如何让 JavaScript 一次运行一个字符串
- 无法在一次运行中删除多个数组元素
- 如何使jquery函数一次运行一个
- 在一次运行中分配并返回一个变量
- 一次运行2个动画