正如标题所示,当单击类.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
}
}
提前致谢!
P.S。页面加载中的警报始终显示未定义。
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
您没有获得返回值,因为它超出了范围,您可以在事件触发时简单地调用该函数。 iff你检查的是,如果单击按钮,你可以确定该功能只会在点击时触发:
function setAnswer() {
$("input.btnAnswer[type=submit]").click(function (event) {
//do stuff and return true if clicked
showHideAnswers(true)
});