0

你好。
我有一个继续和停止功能。
当我通过单击其中一个蓝色框来调用停止功能时,它会在 1 毫秒后调用继续功能。

我的问题是,当我单击“文档”时,它应该再次调用停止功能,但它没有这样做,这里有一个小提琴供仔细查看。

提琴手

PS:在 javascript 代码中,您必须一直向下滚动,因为我无法包含 Jquery 插件。

我在我的编码开始的地方用这条评论标记了我的问题:

//############ here starts my part ####################
4

1 回答 1

1

如评论中所示,不要每次stop()调用都重新绑定您的事件。让我们将绑定移出,我们还将使用stopPropgation(),以便单击事件不会冒泡到文档,这将触发插件再次启动其 mojo:

function stop(){     
    $("#webticker").trigger('click'); //This method doesn't provide anything, except perhaps making code a bit more readable
}

$("#webticker").click(function(event){
        event.stopPropagation(); //If we don't stop propagation, the click event will bubble up to the document, which will start the ticker again
        $("#webticker").webTicker('stop');

          if($(event.target).is('#img1')) {
            $('#log').html(event.target.id + ' was clicked.');
            timer = setTimeout(contin, 1);
        } else if($(event.target).is('#img2')){
            $('#log').html(event.target.id + ' was clicked.');
            timer = setTimeout(contin, 1);
        } else if($(event.target).is('#img3')){
            $('#log').html(event.target.id + ' was clicked.');
            timer = setTimeout(contin, 1);
        } else if($(event.target).is('#img4')){
            $('#log').html(event.target.id + ' was clicked.');
            timer = setTimeout(contin, 1);
        } else if($(event.target).is('#img5')){
            $('#log').html(event.target.id + ' was clicked.');
            timer = setTimeout(contin, 1);
        }
  });

JSFiddle:http: //jsfiddle.net/rLyyR/6/

于 2013-11-10T18:09:19.623 回答