Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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 每次单击JQUERY只允许一个操作_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 每次单击JQUERY只允许一个操作

Javascript 每次单击JQUERY只允许一个操作,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,可能重复: 我有这段代码,我希望DIV insideframe只移动一次,如果我每隔一段时间单击它就会工作 如果我一次点击多次,它将无休止地移动,而不仅仅是一次:/ $(document).ready(function(){ $(".arrow").click(function(){ pos = $("#insideframe").css('margin-left'); pos = (pos.substr(0, 3)); var posi

可能重复:

我有这段代码,我希望DIV insideframe只移动一次,如果我每隔一段时间单击它就会工作

如果我一次点击多次,它将无休止地移动,而不仅仅是一次:/

$(document).ready(function(){
    $(".arrow").click(function(){
        pos = $("#insideframe").css('margin-left');
        pos = (pos.substr(0, 3));
        var posi = parseInt(pos);
        if(posi < -23 ){
            die();
        }else if(posi > -20 ){
            $("#insideframe").animate({
                marginLeft: '-=230'
                }, 800 );
        }
    });
});
$(文档).ready(函数(){
$(“.arrow”)。单击(函数(){
pos=$(“#insideframe”).css('margin-left');
pos=(pos.substr(0,3));
var posi=parseInt(pos);
如果(位置i<-23){
模具();
}否则如果(posi>-20){
$(“#内部名称”)。设置动画({
边缘左侧:'-=230'
}, 800 );
}
});
});

如何使其仅触发一次?

您可以在单击事件发生时向div添加数据,并在后续单击时检查数据

像这样:

$(document).ready(function(){
    $(".arrow").click(function(){

        //Check here if clicked already and return if so
        if($(this).data('clicked') == 'yes')return;
        $(this).data('clicked', 'yes');

        pos = $("#insideframe").css('margin-left');
        pos = (pos.substr(0, 3));
        var posi = parseInt(pos);
        if(posi < -23 ){
            die();
        }else if(posi > -20 ){
            $("#insideframe").animate({
                marginLeft: '-=230'
                }, 800 );
        }
    });
});
$(文档).ready(函数(){
$(“.arrow”)。单击(函数(){
//如果已单击,请检查此处,如果已单击,请返回
如果($(this).data('clicked')=='yes')返回;
$(此).data('clicked','yes');
pos=$(“#insideframe”).css('margin-left');
pos=(pos.substr(0,3));
var posi=parseInt(pos);
如果(位置i<-23){
模具();
}否则如果(posi>-20){
$(“#内部名称”)。设置动画({
边缘左侧:'-=230'
}, 800 );
}
});
});
您可以执行
$(“.arrow”).one('click',function(){…}
。这将使操作只发生一次,但如果要再次允许单击,则必须重新绑定单击


还可以查看插件。

所以如果我让你右键点击多次是允许的,但只有在没有动画运行的情况下才会触发。对吗?尽管这几乎是同一个问题,但我甚至无法理解你指出的问题中的代码。我很抱歉成为一个傻瓜。尽管如此,奥马尔·杰克曼给了我一个答案呃,在你提到的问题上没有。戈米,是的。就是这样。奥马尔·杰克曼给了我一个非常有效的答案。谢谢你,我还不明白绑定和解除绑定的事情:P,但我会读到的。这非常有效!非常感谢。等2分钟,这样我就可以认为它是正确的答案了