2014-06-25 50 views
0

我试图让这个文档就绪函数,当按下回车键时触发,但我不断收到错误消息“enableEnter is undefined”。jQuery文档准备和按键来调用一个功能

$(document).ready(enableEnter()); 

    $('#formPartOverride').keypress(function enableEnter(event) { 
     if (event.keyCode == 13) { 
      event.preventDefault(); 
      ezpConsole.partOverride.retrieveParts(); 
     } 
    }); 
+0

我无法看到被宣布任何地方在你的代码的'enableEnter'功能。 – melancia

+1

@MelanciaUK看看'keypress()' –

+0

的内部是因为你的'enableEnter'函数对'.ready'调用是不可见的,它被用作匿名函数,所以对其他东西不可见 –

回答

2

这是实现这一目标的正确方法:

$(document).ready(function() { 
    // When the DOM is ready, attach the event handler. 
    $('#formPartOverride').keypress(function (event) {    
     enableEnter(event); 
    }); 
}); 

// enableEnter is accessible in the whole page scope. 
function enableEnter(event) { 
    if (event.keyCode == 13) { 
     event.preventDefault(); 
     ezpConsole.partOverride.retrieveParts(); 
    } 
} 

Example

0

创建功能enableEnter()keypress1 function - it is only defined in the scope of the按键之外function, so will not be available to anything above that specific scope. You could encase the entire script inside the $(文件)。就绪()`函数,例如:

$(document).ready(function() { 

    $('#formPartOverride').keypress(function enableEnter(event) { 
     if (event.keyCode == 13) { 
      event.preventDefault(); 
      ezpConsole.partOverride.retrieveParts(); 
     } 
    }); 

}); 

这将等到准备好了文件,使其可在封闭的脚本。