我不能使用以下约定返回值bools / strings。
<input id="lol" type="text" value="ahh" />
<script>
function test() {
var flag = false;
if ($('#lol').val()) {
alert($('#lol').val()); //"sanity check - pass"
flag = true;
}
return flag;
};
function modal() {};
var m = new modal();
modal.prototype.init = function(x) {
this.input = x;
this.modals = {};
this.initModalFrames();
this.executeLogic();
}
modal.prototype.initModalFrames = function() {
for (i in this.input) {
this.modals[i] = {
handle : this.input[i].handle,
frame : this.input[i].frame,
logic : this.input[i].logic ? this.input[i].logic : null
};
}
}
modal.prototype.executeLogic= function() {
var s = this;
$.each(this.modals, function(i, o) {
if(s.modals[i].logic != null) {
var x = s.modals[i].logic.call();
if(x) {
alert('true');
}
else {
//Always evaluates to false
alert('false');
}
}
});
}
m.init([
{handle: '#handle1', frame: '#frame2', logic: function() {test();}},
]);
</script>
该函数似乎没有返回任何内容,并且总是计算为false。 我在这里做错了什么?
答案 0 :(得分:3)
您的logic
处理程序应返回test
执行结果:
{ handle: '#handle1', frame: '#frame2', logic: function() { return test(); } }
或更简单:
{ handle: '#handle1', frame: '#frame2', logic: test }