如何在JQuery中点击按钮后返回函数的值?

问题描述 投票:2回答:3

我有一个名为时返回输出到一个承诺函数的函数。

我有一个executeScript方法,其动态处理JavaScript方法,并返回一个承诺,什么这些方法返回。

基骨架

Ref.executeScript({
                code: "getData(); function getData(){ var res = 'Hello'; return res;}",
            function(results){
     console.log(results); ////THIS RETURNS "Hello"
   });

当代码直接返回变量它的工作原理。例如,下面的返回时执行你好。

getData();
 function getData(){
   var res = "Hello";
   return res;
  }

但是,如果我回到它的单击事件中,它返回按钮点击之前的值“你好”,而不是“Hello2”。我想“Hello2”将被返回。

getData();
function getData(){
 var res = "Hello";
 jQuery("#myButton").on('click', function(){
   res = "Hello2";
   alert(res); //this gets called
  });
return res;
}

更新了原来的问题,提供更清晰

javascript jquery cordova anonymous-function inappbrowser
3个回答
0
投票

当然,它仍然会返回“你好”,因为当你调用该函数不上点击功能输入。你的功能确实是设置为Click事件的行动,但也不会调用它。在点击事件功能,你真的不能返回一个值,我无法想象,你会需要它。您可以使用范围外变量这样的尝试,但我不建议这样做:

var hasBeenClicked = false;
jQuery("myButton").on('click', function(){ 
     hasBeenClicked = true;
});

function buttonWasClicked() {
     var res = hasBeenClicked;
     hasBeenClicked = false;
     return res;
});

-1
投票

我想你想的单击事件更新的价值这一点,你必须使用JavaScript原型试试这个

function GetData(){
   this.res = "Hello";

} 
jQuery("#myButton").on('click', function(){

   GetData.prototype.res = "Hello2";
     alert(res); //this gets called
  });
  getData  = new GetData();
  console.log (getData.res)

-1
投票

你应该写这样的事情:

var res = '';
function getData(){
    res = "Hello";
    return res;
}

$(document).ready(function() {
    $("#myButton").click(function(e){
       e.preventDefault(); //if you have form to submit
       res = "Hello2";
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.