2011-09-08 51 views
0

我想在我做的一點搜索中使用keyup函數,但是在服務器上的文件和通過IE8和FF訪問頁面時,keyup函數似乎沒有上班。爲了測試它,我借用了jQuery網站示例中的代碼,將它放在服務器上(它是Windows Server 2003 R2)。但是,這個例子也不起作用(http://api.jquery.com/keyup/)。我注意到它有行Jquery Keyup()示例不工作在服務器上

<script type="text/javascript" src="/scripts/events.js"></script>

和我最初的想法是,「我的是不工作,因爲我失去了這樣的活動文件!」但谷歌搜索後,我認爲情況並非如此。在我的代碼中,我鏈接到一個jQuery的下載副本,並且我也嘗試過通過googleapi的副本鏈接它,無論何時都沒有運氣。有關爲什麼keyup函數可能無法在服務器上工作的任何想法?

+0

請提供您正在使用的代碼的副本。 JavaScript在瀏覽器中執行,這意味着服務器是無關緊要的(當然不包括JS服務器調用)。 – ShaneC

+0

除了在未看到您的JavaScript代碼和相關HTML的情況下進行猜測外,我們無法做其他任何事情。 – jfriend00

+0

對不起,我不想再發布它,因爲我提出了一個關於我之前遇到的問題的問題,下面是另一個問題中關於javascript,html和php的鏈接:[link](http:// stackoverflow .com/questions/7324149/using-php-mssql-jquery-for-instant-search) – dwf

回答

0

該頁面上的代碼似乎有點不合適。具體來說,它似乎使用print功能,這是從最新的jQuery缺席(也許它包含在那個缺少的events.js腳本?)

我做了一些小的更改,使一個工作版本(注意我使用谷歌-hosted jQuery的,你可以點,在您的本地版本而不是它應該仍然正常工作)

<!DOCTYPE html> 
<html> 
<head> 
    <style> 
fieldset { margin-bottom: 1em; } 
input { display: block; margin-bottom: .25em; } 
#print-output { 
    width: 100%; 
} 
.print-output-line { 
    white-space: pre; 
    padding: 5px; 
    font-family: monaco, monospace; 
    font-size: .7em; 
} 

</style> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script> 
</head> 
<body> 
    <form> 
    <fieldset> 
    <label for="target">Type Something:</label> 
    <input id="target" type="text" /> 
    </fieldset> 
</form> 
<button id="other"> 
    Trigger the handler 
</button> 
<div id="output"></div> 
<script> 
var xTriggered = 0; 
$('#target').keyup(function(event) { 
    if (event.keyCode == '13') { 
    event.preventDefault(); 
    } 
    xTriggered++; 
    var msg = 'Handler for .keyup() called ' + xTriggered + ' time(s).<br />'; 
    $('#output').append(msg); 
}); 

$('#other').click(function() { 
    $('#target').keyup(); 
});</script> 

</body> 
</html> 

在這個變化版本,我使用jQuery的append()函數輸出調試信息到一個新的div我。已添加到文本框下方。當您在文本框中輸入內容時,您應該看到正在那裏註冊的按鍵事件。

+0

是的!這工作,我不能投票給你,但這告訴我,它正在工作,並且我的代碼有什麼問題:(謝謝! – dwf

+0

@dwf這可能是您瞭解Javascript調試工具的好時機可用於您最喜愛的瀏覽器(通常是Chrome,Safari和IE中的內置開發人員工具,以及適用於Firefox的Firebug插件)。至少,瞭解如何在瀏覽器中查看Javascript錯誤控制檯以查看基本錯誤信息正在丟失 –

+0

@dwf如果答案對你有用,那麼你可以繼續,並在投票計數下放一個選中標記,這將有助於答案,並給你一些聲望 – ShaneC

0

您正在觀看的元素在頁面加載後是否動態生成?如果是這樣,你需要使用直播:

$("#element").live('keyup',function(e) { 
    var keycode = e.keyCode ? e.keyCode : e.which; 
}); 

否則嘗試:

$("element").keyup(function(e) { 
    var keycode = e.keyCode ? e.keyCode : e.which; 
}); 

此外,請確保您選擇合適的元素,並仔細檢查選擇是正確的(輸入框?)。在不同的瀏覽器中可能會出現一些問題,處理e.keyCode,或者不。上面的例子還檢查e中的關鍵代碼值,如果e.keyCode不存在。

相關問題