2011-08-30 63 views
0

這裏是我的代碼無法加載一個簡單的函數

<script type="text/javascript" href="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
<script type="text/javascript" href="js/js.js"></script> 
... 
<input type="text" name="city" onkeyup="loadStation(this.value);"/> 
... 

和js.js文件

//Load Stations 
function loadStation(stationCity){ 
    alert(stationCity); 
} 

當我嘗試的onkeyup觸發loadStation,什麼也沒有發生。 js/js.js的路徑是可以的,因爲在源文件中我可以加載它。

什麼可能是錯的?

編輯

我倒非常愚蠢的....而不是HREF = 「」 它應該是SRC = 「」。該funiest的是,即使你們有沒有注意到:P

感謝

+0

你確定你的JavaScript源路徑是正確的?它使用相對路徑,所以如果你在頁面'/ foo/bar.php'上,它會嘗試從'/ foo/js/js.js'加載你的腳本,而不是'/ js/js.js'。 – detaylor

回答

4
你可能是錯的`JS/js.js` 我建議使用Firebug檢查你」不要從你的js文件中得到404錯誤。 您可能想要使用js文件的根相關鏈接:`/ js/js.js`,這樣您就不會遇到子目錄問題。

我有often professed the beauty of HTML CSS & JavaScript as an MVC pattern。所以我不會在這裏進入,但是。你應該讓你的HTML中.html文件,在.css文件你的CSS,而JavaScript在.js文件

使用內嵌的JavaScript事件屬性休息,我經常形容漂亮的MVC模式,所以它的更好的附着在事件腳本本身:

//wrap this in a document.ready or window.onload event callback 
//-or- 
//place the script *after* the input element has been added to the dom 
var input; 
//replace with whatever selector 
input = document.getElementsByTagName('input')[0];works 
input.onkeyup = function(){ loadStation(this.value) }; 

...more code... 

function loadStation(val) 
{ 
    alert(val); 
} 

Fiddle

更幾個調試問題: *您測試平HTML和JS文件LOCA LLY? *您是否將平面文件上傳到服務器? *您是否可以發佈內容所在的網址?

您正在使用href而不是script元素上的src

+0

隨着/或不在js/js.js之前沒有任何反應。在源代碼中,我點擊它,它會在源代碼中加載js文件,所以路徑是正確的。 – Warface

+0

@Warface,你在說什麼「源代碼」?你在用什麼編輯器? – zzzzBov

+0

通過Chrome中的簡單CTRL-U,您可以看到正確的源代碼!然後您可以單擊js/js.js路徑,以便源代碼加載js.js內容,並加載它以便路徑正確。 – Warface

0

嘗試添加像這樣的onkeyup在你的js文件:

$('body').ready(function(){ 
    $('#idOfInput').onkeyup(function(){ 
     loadStation(this.value) 
    }); 
});