2013-07-02 65 views
3

好的,真的令人沮喪,而且很奇怪。我有我的服務器上安裝JQuery的,我知道這是正確導入,因爲當我運行一個簡單的...JQuery適用於JS小提琴,但不適用於我的網站?

$(function() { alert('hello') });

它告誡「你好」。然而,當我嘗試使用CSS選擇器...

$(".image").css("border","3px solid red");

它不工作!是的,我100%確定文件中有類名。這是真正的踢球者,當我將我的代碼複製到jsFiddle時它工作得很好。是什麼賦予了?!

+0

你確定沒有jQuery的衝突嗎? – Varada

+1

你把你的代碼放在哪裏?在DOM準備好了嗎?窗口加載?頁面底部?在納尼亞?我很確定它在小提琴上工作,因爲它默認將它放在窗口加載中。 –

+0

瀏覽器控制檯中的任何錯誤 –

回答

7

你的jsfiddle在的jsfiddle窗口的左上角設置onload。如果您將其設置爲模擬<head>標記中的代碼的「No Wrap - in Head」,那麼您的jsFiddle不再有效。

onload設置意味着jsFiddle在頁面加載之前不會運行您的javascript。

在您的真實頁面中,您可能在頁面加載之前過早運行JavaScript。

您可以修復把你的JavaScript在它自己的.ready()功能:

$(document).ready(function(){ 
    $(".image").css("border","3px solid red"); 
}); 

或者,你可以確保的JavaScript未加載/運行,直到右邊的</body>標記之前這是在腳本運行之前確保頁面內容已加載的簡單方法。

<body> 
Your HTML content here 

<script> 
// your script here that runs after all of the DOM is parsed 
$(".image").css("border","3px solid red"); 
</script> 

</body> 

this answer更多細節上適當地放置<script>標籤。

+0

+1,很好的解釋! – sarwar026

-2
if u have a internet connection following link useful for you 

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 

above link put inside a body or before write a script and please verify jquery js file. 
+0

這不是問題 – Daedalus

0

你測試了在$(document).ready(function(){});裏面加入嗎?

<script src="http://code.jquery.com/jquery-1.10.0.min.js"></script> 
<script> 
    $(document).ready(function(){ 
     $(".image").css("border","3px solid red"); 
    }); 
</script> 
+0

呃,如果'$(「。image 「).css(」border「,」3px solid red「);'不起作用,那麼它不能用於測試文件的準備情況。但是,如果我使用'$(function(){alert('hello')});'裏面,是的,我得到警報。 – Allenph

+0

^我收回它。有效。如果這有效,爲什麼我不能把'$(「。image」).css(「border」,「3px solid red」);'?這仍然行不通。 – Allenph

+0

不起作用?請看這裏... http://jsfiddle.net/yeyene/mfLt7/2/ – yeyene

相關問題