0

正如标题所说,当单击具有类 .btnAnswer 的按钮时,我试图让我的 setAnswer() 函数返回 true,否则返回 false。然后我将返回的值传递给 showHideAnswer() 函数并将该值用于逻辑。这似乎很容易,我不确定我哪里出错了。我在 .NET 中编写了很多代码,并且对使用 Javascript 函数还是很陌生。我相信这很容易!

//On partial page load    
function pageLoad(sender, args) {
    if (args.get_isPartialLoad()) {
        showHideAnswers(setAnswer());
        alert(setAnswer());
    }
}

//Set answer
function setAnswer() {
    $("input.btnAnswer[type=submit]").click(function (event) {
        //do stuff and return true if clicked
        return true;
    });
}

//Show hide stuff
function showHideAnswers(flag) {
if(flag){

//do stuff

}

}

提前致谢!

PS我在页面加载中的警报总是显示未定义。

4

2 回答 2

1

您的函数 setAnswer() 不返回任何内容。jQuery .click() 是一个事件监听器,这意味着它不是你调用的东西。设置后,单击元素时将调用它。

简单的工作示例是,设置一个全局标志变量,并让 .click() 侦听器在单击时更改它:

var flag=false;
$( "#buttonID" ).click(function() {
  flag=true;
});

//On partial page load    
function pageLoad(sender, args) {
  if (args.get_isPartialLoad()) {
    showHideAnswers();
    alert(flag);
  }
}

//Show hide stuff
function showHideAnswers() {
  if(flag){
    //do stuff. flag is global, no need to define in function or pass to it
  }
}
于 2013-08-30T00:08:21.013 回答
0

您不会获得返回值,因为它超出了范围,您可以在事件触发时简单地调用该函数。如果您检查的只是按钮是否被点击,您可以确定该功能只会在点击时触发:

function setAnswer() {
    $("input.btnAnswer[type=submit]").click(function (event) {
        //do stuff and return true if clicked
        showHideAnswers(true)
    });
于 2013-08-29T23:58:57.740 回答