将变量从一个功能转移到另一个功能

pfrenforyou

我没有弄清楚如何从中访问percEntage变量$("#checkDate").on("click", function();

var percEntage;

function move() {

    move.called = true; 
    var elem = document.getElementById("checkDate");
    var width = 10;
    var id = setInterval(frame, 10);
    function frame() {
        if (width >= 100) {
            clearInterval(id);
        } else {
            width++;
            elem.style.width = width + '%';
            ==>>percEntage  = document.getElementById("checkDate").innerHTML = width * 1 + '%';
        }
    }   
}

$("#checkDate").on("click", function(){

    var dateObject = $("#arrivalsDate").datepicker('getDate');  
    if(!dateObject){
        $("#arrivalsDate").effect( "shake", {times:4}, 1000 );      
    }else{
        move();
        ==>alert(percEntage);
        if(percEntage=="100%"){
            //do something
        }       
    }
});
大卫

与其他人所写的相反,您不需要在更全局的范围内定义(即足够全局!)或使用window.percEntage

实际上,没有什么可以阻止$("#checkDate").on("click", ...访问percEntage变量的。

请看下面的代码片段,其中包含您的代码的简化版本:

var percEntage;

function move() {
    var width = 10;
    var id = setInterval(frame, 50);
    function frame() {
        if (width >= 100) {
            clearInterval(id);
        } else {
            width++;
            $( "#checkDate" ).css( "width", width + '%');
            $( "#checkDate" ).html( width + "%" )
            percEntage = $( "#checkDate" ).html();
        }
    }   
}

$("#checkDate").on("click", function(){
    move();
    alert(percEntage);
    if(percEntage=="100%"){
	    alert( "Completed!" );
        //do something more
    }       
});
#checkDate{
    display: block;
    border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="checkDate">Check date</button>

第一次单击时收到“未定义”警报的原因checkDatesetInterval尚未开始。从那时起,您将获得正确的百分比。

但是,当然,如果再次单击checkDate该元素,它将返回其原始大小,并且间隔将重新启动(不确定是否是您想要的)。同样,当元素达到100%的宽度时,至少您再次单击它,也不会发生任何事情。

如果您需要在checkDate达到100%时自动发生某些事情,则需要检查间隔内的时间(如JJJ所述)。就像是:

function checkDateCompleted() {
    // do something great here!
}

function frame() {
    if (width >= 100) {
        clearInterval(id);
        checkDateCompleted();
    } else {
        width++;
        elem.style.width = width + '%';
        percEntage  = document.getElementById("checkDate").innerHTML = width * 1 + '%';
    }
} 

希望能帮助到你!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过角度控制器中的全局变量将信息从一个功能转移到另一个功能

将溢出的内容从一个div转移到另一个

将帖子从一个博客转移到另一个博客?

将收集对象从一个jsp转移到另一个

将数据从一个$ state转移到另一个

将变量的值从一个不相关的类转移到另一个

将变量从一个工作簿转移到另一个工作簿vba

Angular 2 将变量从一个模板转移到另一个模板

将1个随机记录从一个表转移到另一个表

Android从一个应用转移到另一个

从一个捕获转移到另一个try catch块

将回购从一个 bitbucket 帐户转移到另一个

自动导入和重构(移动)功能在vscode中从一个文件转移到另一个文件

将文本从一个活动转移到android studio中的另一个活动

将应用程序从一个Admob帐户转移到另一个帐户

是否可以将 kafka 用户从一个 Zookeeper 转移到另一个 Zookeeper?

将Anaconda安装从一个用户帐户转移到另一个用户帐户

如何将结构从一个克隆转移到另一个

如何将记录从一个表转移到另一个表?

将域从一个办公室门户转移到另一个

使用Bitbucket,如何将提交从一个分支转移到另一个分支?

如何将滚轮或滚动事件从一个元素转移到另一个元素?

Selenium Python将Webelement从一个列表转移到另一个列表

使用SQLite将数据从一个活动转移到另一个活动:Android Studio

如何通过python将皮肤权重从一个骨骼转移到另一个骨骼

将多个列从一个工作簿转移到另一个工作簿

将控制权从一个按钮转移到另一个

将构建和发布管道从一个组织转移到另一个组织

Flutter:将数据从一个文件转移到另一个文件