Javascript函数,当jQuery点击事件发生时返回true,否则返回false

Javascript function, return true when jQuery click event occurs, else false

本文关键字:返回 true false 事件 函数 jQuery Javascript      更新时间:2023-09-26

正如标题所说,当点击带有类.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
}
}

提前感谢!

附言:我在页面加载中的提醒总是显示未定义。

函数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
  }
}

由于返回值超出了范围,因此无法获得返回值,您可以在事件触发时简单地调用函数。如果你所检查的是点击按钮,你可以确定该功能只会在点击时启动:

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