我有一个函数,我希望在运行'close'点击事件时停止它。
这背后的原因是当我第二次运行img.start
点击事件时,再次调用该函数并且现在运行两次。
有问题的功能是幻灯片放映,所以我确实需要该功能只能在页面上运行一次。
所以,为了清楚起见,当我点击img.close
时,我希望BannerSlideshow
功能停止运行而不再运行。
启动功能点击事件
$('img.start').click(function () {
BannerSlideshow.Init()
});
结束功能点击事件
$('img.close').click(function () {
//stop function BannerSlideshow from running
});
幻灯片功能片段
var BannerSlideshow = (function () {
return {
Init: function () {
//slideshow functionality
}
我已将我的问题更新为更具体,道歉的人。
答案 0 :(得分:1)
你可以使用bind()和unbind()
来做到这一点$('img.close').bind('click',function () {
// your code
$(this).unbind('click');
});
OR
您可以使用关闭()
$(this).off('click');
答案 1 :(得分:0)
使用它:
event.stopPropagation();
或使用on.click
并使用
进行杀戮$(this).off();
或
use .bind and .unbind();
最好在这里看到:http://api.jquery.com/category/events/event-handler-attachment/
答案 2 :(得分:0)
答案 3 :(得分:0)
为什么不使用带布尔值的停止函数?
var running = false;
$('img.close').click(function () {
running = true;
});
如果running = true,请使用stop()函数,否则启动幻灯片
我认为停止功能比取消绑定处理程序更好
答案 4 :(得分:0)
StartSlideshow功能是什么样的?我想你可以有一个全局变量来运行幻灯片或不...
function StartSlideshow() {
globalVariableRunSlideshow = true;
while (globalVariableRunSlideshow) {
/* Do some slideshowing here */
}
}
然后你的活动可以做类似的事情:
$('img.close').click(function () {
globalVariableRunSlideshow = false;
});