点击事件JavaScript后杀死功能

时间:2013-03-08 09:57:43

标签: javascript jquery function events

我有一个函数,我希望在运行'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            
    }

我已将我的问题更新为更具体,道歉的人。

5 个答案:

答案 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)

你可以使用off方法。 Off()

  

(从jQuery 1.7开始,首选.on()和.off()方法   附加和删除元素上的事件处理程序

$('img.close').off('click');

答案 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;
});