2012-12-17 58 views
0

我有一個JavaScript代碼,通過刪除它的第一行和最後一行來工作。JavaScript中的函數在調用時不起作用

請看看JSFiddle

誰願意看到它在這裏,這裏的人是我的html:

<input id="search" onclick="search()" type="button" value="Search"/> 

我的javascript:

function search() { 
var search = document.getElementById('search'); 

var int = setInterval(function() { 
    if (search.value.length == 6) 
     search.value = 'Searchi'; 
    else if (search.value.length == 7) 
     search.value = 'Searchin'; 
    else if (search.value.length == 8) 
    search.value = 'Searching'; 
    else { 
     search.value= 'Search'; 
      } 
    //clearInterval(int); // at some point, clear the setInterval 
}, 500); 

} 

我想要的功能只有當我點擊按鈕時才能工作。

+0

看到它的工作原理:http://jsfiddle.net/subTZ/61/ – Anujith

+1

在jsFiddle中選擇「no wrap(head)」,解決了。 – elclanrs

回答

2

您已在jsfiddle.net中選擇jQuery,默認情況下,該網站會將您的整個代碼包裝在document.ready處理程序中。

其結果是您的search函數成爲該包裝器中的局部函數,而不是DOM0 onclick處理程序所需的全局變量。

將jsfiddle選項設置爲「no wrap(body)」和「No-Library(pure js)」來關閉該功能。

+0

謝謝你的提示,它在JSFiddle網站工作。但我無法管理它在普通的HTML文檔中工作。是否需要在HTML文檔中修復某些對象? – shnisaka

+0

@shnisaka我看不出任何明顯的代碼錯誤,儘管把JS事件處理程序放在'onclick'屬性中被認爲是現在很老式的東西。 – Alnitak

+0

如何修復代碼以使其更好? – shnisaka