2017-08-01 58 views
0

好吧,我真的很难过。我将一个函数绑定到keydown,但是如果在两个看起来不相关的代码中存在特定的条件,它将不会触发。当其他功能码出现时keydown事件不起作用

HTML

<input id="enteredData" name="enteredData" /> 
<button id="submit-button">Submit</button> 

的keydown功能:

$(document).on("keydown", function(e) { 
    console.log("keydown") 
    if (!$("#enteredData").is(":focus")) { 
     $("#enteredData").focus(); 
    } 
}); 

这里是代码的其它看似不相关的作品

$(function() { 
    $("#submit-button").click(function(e) { 
     e.preventDefault(); 
     console.log("submit") 
     if (!$("#enteredData").is(":disabled") {  
      // do something 
     } 
    }); 
}); 

function onAction(data) { 
    if (!$("#enteredData").is(":disabled") {   
     // do something 
    } 
} 

看到常见的if语句呢? if (!$("#enteredData").is(":disabled")。如果我从两块代码中删除条件,那么keydown函数可以正常工作。真的迷失在这里。

+0

请使用Stack Snippets('[<>]'工具栏按钮)以** runnable ** [mcve]更新您的问题,以显示问题。 –

+0

随时检查控制台的JavaScript错误。 – James

+0

@ T.J.Crowder我做了改变,是更好的吗? – zero01alpha

回答

3

您的第二个代码块中的if语句似乎都缺少右括号。

$(function() { 
    $("#submit-button").click(function(e) { 
     e.preventDefault(); 
     console.log("submit") 
     if (!$("#enteredData").is(":disabled")) { 
      processData($("#enteredData").val());   
     } 
    }); 
}); 

function onAction(data) { 
    if (!$("#enteredData").is(":disabled")) {  
     processData(data); 
    } 
} 
+0

哇....为什么不会显示错误的JavaScript控制台。谢谢! – zero01alpha

+0

@ zero01alpha:它会和所有主要的桌面浏览器。 (也许是最小的也是。) –

+0

@TJCrowder哇....我刚刚发现,我不知何故在Firefox控制台中意外关闭了JS .... console.log语句仍然显示,虽然这很奇怪.. .jeez。 – zero01alpha

相关问题