Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript只做一次_Javascript - Fatal编程技术网

javascript只做一次

javascript只做一次,javascript,Javascript,我有下面的功能,让我的元素反弹,每次我点击他们。我如何才能做到我只能在每个元素上单击一次,如果我再次单击以获得警报(“已单击我”) 像这样的东西应该可以做到: function bounceOnClick(view) { if (view instanceof View) { // Listen to a click event, and run this handler only once. view.one("click", function (ev

我有下面的功能,让我的元素反弹,每次我点击他们。我如何才能做到我只能在每个元素上单击一次,如果我再次单击以获得警报(“已单击我”)


像这样的东西应该可以做到:

function bounceOnClick(view) {
    if (view instanceof View) {

        // Listen to a click event, and run this handler only once.
        view.one("click", function (event) {
            event.stopPropagation();
            view.scale = 0.7;
            view.animate({
                properties: {
                    scale: 1.0
                },
                curve: "spring(1000,15,500)"
            })

            // New event handler: notify the user the element was clicked before.
            view.on("click", function (event) {
                event.stopPropagation();
                alert("already clicked me!");
            })
        })
    }
}
这将使用jQuery只运行第一个函数一次,然后分配一个新的事件处理程序,该处理程序带有
“已单击我!”
警报。

您可以使用jQuery

Jquery.one():-将处理程序附加到元素的事件。对于每个事件类型,每个元素最多执行一次处理程序

试试这个:

 view.one("click", function (event) {
 // Your Code
 });

在JavaScript中,所有对象都是动态的,因此您可以向视图添加属性:

view.on("click", function (event) {
    if (this.clicked) {
        alert("already clicked!");
    } else {
        // your code
        this.clicked = true;
    }
});

单击时为元素设置布尔属性。[eg view.clicked=true;]如果属性存在,则发出警报。然后,第二次单击将生成警报消息。
view.on("click", function (event) {
    if (this.clicked) {
        alert("already clicked!");
    } else {
        // your code
        this.clicked = true;
    }
});