结束javascript函数

时间:2013-09-11 01:09:27

标签: javascript jquery function

我有一个链接到具有以下功能的js文件的html页面:

function show360Simple( divContainerId, imageUrl )

在点击时调用该函数:

<area onclick="show360Simple('pContainer5','images/porch1.jpg');">

我想知道如何以另一个点击结束该功能:

<div id="close-div" onclick="what is the syntax here to end the above function?"></div>

它可能很简单,但我是新手,还没有能够解决它 - 非常感谢任何帮助 - 干杯。

1 个答案:

答案 0 :(得分:2)

上面链接的脚本使用setTimeout来管理动画。

要停止,您需要稍微修改一下代码并添加一个停止功能。

最简单的方法是存储每个setTimeout调用返回的timeoutId。然后,在stop函数中,调用clearTimeout传入存储的timeoutId。

没有做太多改变:

// Declare a global timeoutId
var timeoutId;

function show360中将setTimeout调用更改为:

timeoutId = setTimeout(…);

function move360中将setTimeout调用更改为:

timeoutId = setTimeout(…);

然后添加一个stop360函数:

function stop360() {
    clearTimeout(timeoutId);
}

Demo fiddle

这将停止动画 - 基本上冻结它。如果要删除脚本所做的更改,可以将stop函数更改为以下内容:

function stop360(divContainerId) {
    clearTimeout(timeoutId);

    if(divContainerId) {
        var o = document.getElementById(divContainerId);
        o.style.backgroundImage = '';
        o.style.position = "";
        o.innerHTML = "";
    }
}

Demo with Clear