2009-11-12 83 views
2

我試圖用警報調用一個簡單的函數,但當我嘗試從我的html頁面調用函數(包含在外部js文件中)時,它不會工作。在外部js文件中調用js函數

我有一個導入和調用非常簡單。有什麼建議麼?

<head> 
<script src="/js/jsFunctions.js" type="text/javascript"></script> 

在我的代碼我稱之爲

<a href="javascript:displayAlertText('someText');"> 

的JS裏面我有些jQuery的後跟函數

function displayAlertText(someText) 
    { 
     alert('alert' + someText); 
    } 
+0

這似乎是好的!? – powtac 2009-11-12 16:25:51

+0

確保js文件真的包含在內。提醒('我是包括');到displayAlertText函數外部的js文件中, – anddoutoi 2009-11-12 16:27:38

+0

使用控制檯調試程序(例如用於IE8的Web Developer Tools或Firebug for Firefox將爲您提供一條有意義的錯誤消息,您可以將其與您的代碼一起發佈) – 2009-11-12 16:27:47

回答

3

在純jQuery的你可以這樣做,如:

$(document).ready(function(){ 

    $('a').click(function(){ 
     alert('here'); 
    }) 

}) 
0

試試這個,而不是...

如果這沒有幫助,我會開始確定您的JavaScript文件加載正確,並且不包含某處的簡單語法錯誤。使用Firefox中的Firebug查看您的頁面,並查找警告和錯誤。

0

你提到過jQuery。函數是獨立的還是內部的jQuery對象(即包含在的另一個函數中)?這有所不同。

Apart從這個問題來看,你調用函數的方式並不乾淨。將它移動到onclick屬性或更好地使用jQuery。

5

你正在做的是什麼樣子它應該工作。問題可能在其他地方。

帶有「Javascript:」前綴的Hrefs真的很可怕。相反,嘗試改寫,作爲:

<a href="#" onclick="displayAlertText('someText'); return false;"> 

除此之外,(我不認爲會實際上會導致它),你已經犯說:「它沒有工作」的大忌。控制檯中有沒有Javascript錯誤?我懷疑你會有,除非有效的函數真的被調用。

此外,請嘗試從頁面上的<script>塊中明確調用JS函數,以查看它失敗的點。

仔細檢查,以及該外部文件確實已經在你點擊鏈接時加載 - 也許把線在外部腳本文件的底部,以幫助檢查這一點,如

alert('External file loaded.'); 

編輯(基於評論):好的,所以我們確定你可以從頁面上的「普通」JavaScript中調用該方法。這意味着問題在於您嘗試從超鏈接調用腳本的方式。

你是否已通過驗證器傳遞了HTML?如果語法無效,則用戶代理可以根據需要解釋它,包括完全忽略它。

如果HTML確實有效,那麼在這裏發佈鏈接到完整的HTML可能會很有用,這樣其他人就可以查看它並查看問題所在。這可能類似於另一個函數,覆蓋鏈接的onclick事件,所以您的事件處理程序會丟失。

+0

謝謝,當我從腳本塊調用它的功能,它工作正常。也即時使用jquery功能從外部文件,他們都工作正常。 $(document).ready(function())之外的唯一不同之處在於, – cduggan 2009-11-12 16:32:15