我有两个按钮。保存并撤销。他们执行javascript,最后他们调用resetButtons(),这意味着禁用按钮,直到用户输入发生任何其他更改。这段代码已经工作了一年多了,但是在实现一些新特性的同时,这个特性已经失效了。
下面是代码的直接片段:
function undo(){
var r = confirm("Are you sure you want to cancel your inputs?");
if (r == true) {
setLoadedValues(); //calls in the cached previous values
updateAllBoxValues(); //updates view
console.log("before resetting buttons");
resetButtons();
console.log("after resetting buttons");
}
}
function resetButtons(){
console.log("resetting buttons");
$(".save").addClass("disabled");
$('.save').attr('disabled', 'disabled');
$(".undo").addClass('disabled');
$('.undo').attr('disabled', 'disabled');
console.log("done resetting buttons");
}这提供了以下输出:
before resetting buttons
after resetting buttons我怀疑括号中有错误的格式设置,但这是代码的直接片段,如果undo()有效,那么resetButtons()也应该这样做,对吗?另外,我应该得到一个未定义的函数,或者一个无法预料的输入端,或者类似的东西(如果是这样的话)。单击“保存”按钮时,对resetButtons的调用也会被忽略。我迷路了。帮助?
发布于 2015-05-22 11:42:50
您有一个重复的函数定义。给其中一个改名。
发布于 2015-05-22 11:33:52
您的代码看起来很好,您必须在其他地方出现其他错误(比如一个名为这两个函数的函数)。
顺便提一下,我建议使用jQuery的“支柱”方法来更改禁用的属性:
$('foo').prop('disabled', true);
$('foo').prop('disabled', false);发布于 2015-05-22 11:46:08
尝试触发控制台中的resetButton()函数,如果出现问题,应该返回它。在随机控制台中测试它可以得到它应该有的所有日志,但我不能为选择器提供担保。错误可能在代码的其他地方。
https://stackoverflow.com/questions/30394885
复制相似问题