2016-01-27 43 views
0

我已閱讀similar問題,但在這種情況下似乎無法解決此問題,因此非常感謝您的澄清。我有一個PHP頁面,它運行幾個JavaScript實例,在localhost上提示。然而,一個特定的JavaScript實例(當它滾動超過10px時會隱藏箭頭)不會運行,但是當我從相同的PHP頁面的html版本運行相同的操作時,箭頭操作將按需要運行。爲什麼會這樣?這裏是jsfiddle中的頁面代碼(與php頁面中的相應部分完全相同)。使用Javascript運行html而不是php

爲了說明我在最後(在頁腳之後,在body結束)index.php文件的(以及JavaScript的其它模塊根據需要爲各自的目標,其工作):

<script type="text/javascript"> 
$(window).scroll(function() { 
    if ($(this).scrollTop() > 10) 
     document.getElementById('arr_downpoint').style.visibility = 'hidden'; 

else 
     document.getElementById('arr_downpoint').style.visibility = 'visible'; 
    }); 
</script> 

我已經加入jQuery的如下(和它適用於所有其他情況下,PHP頁面除了箭頭):

<script type="text/javascript" src="//code.jquery.com/jquery-1.11.3.min.js"></script> 
<script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 

最後,沒有控制檯錯誤。想知道爲什麼只有這個JavaScript塊不能從php工作,但是從HTML工作(而其他JavaScript實例在PHP和HTML上都可以正常工作),以及如何找出哪些問題?

解決方案:剛發現我在分配箭頭標識時錯誤地添加了#號。這就是爲什麼腳本無法對箭頭執行任何操作,因爲<a>現在有一個#作爲其名稱的一部分。對於這種粗心大意的疏忽感到遺憾,因爲它可能需要考慮。

+0

,你能否告訴/股的PHP代碼? – putvande

+0

相關部分的php代碼與上面使用的完全相同,我在頭部後面的部分調用數據庫,而不是頭部本身(顯示在jsfiddle中)。 –

+1

瀏覽器沒有看到「正常」html和由php腳本生成的html之間的區別,它全是html。那麼這兩個html源代碼有什麼區別?也許PHP的警告,搞亂你的JavaScript? – jeroen

回答

0

如果您試圖直接從文件加載頁面(您的頁面URL以'file:// ...'開頭),問題是瀏覽器正在嘗試使用相同的協議加載jquery(文件改爲),因爲你沒有爲外部文件指定一個協議(src屬性以'//'開頭,這意味着類似於「使用當前頁面的相同協議」)。您可以驗證,如果這是你的問題背後的原因,打開瀏覽器控制檯尋找類似的錯誤:

GET file://code.jquery.com/jquery-1.11.3.min.js net::ERR_FILE_NOT_FOUND 
GET file://code.jquery.com/jquery-migrate-1.2.1.min.js net::ERR_FILE_NOT_FOUND 
Uncaught ReferenceError: $ is not defined 

要解決這個問題,你應該始終從服務器(如Apache和PHP運行你的HTML,因爲你已經做了),或者你可以寫外部腳本的URL包括協議(但是這可能會導致如果你將HTTPS下運行網頁其他問題)

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
<script type="text/javascript" src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 
+0

- 使用xampp –

+0

在瀏覽器控制檯中是否有任何錯誤? – obiTheOne

+0

沒有控制檯的錯誤 - 但請原諒,通過代碼,注意到我給#添加了#。這是問題! –

相關問題