2014-06-25 74 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(); 
     } 
    }); 

}); 

這將等到準備好了文件,使其可在封閉的腳本。