2014-02-06 32 views
0

我有一個jQuery代碼,應該在新聞文章的每一段之後插入一些內容。就像這樣:PHP中的jQuery/JavaScript輸出

$(document).ready(function() { 
    $("<a>The link inserted in jQuery</a>") 
     .insertAfter("p") 
     .attr("href", "http://bi.ng") 
     .addClass("abonnerreklame") 
    ; 
}); 

它工作在我所做的Fiddle,但不是我的實際網站。背後的原因,必須是物品使用PHP動態渲染(WordPress的):

<?php the_content(); ?> 

有沒有辦法讓JavaScript來工作,即使是從PHP生成的輸出?我希望你能理解我的問題 - 如果你有這方面的知識,請幫助。順便說一句,

Here是我的測試網站。

謝謝!

+6

你應該首先修復錯誤,檢查你的控制檯 –

+0

我在IE中得到了這個,但我不知道它是什麼意思:'SCRIPT5007:期望一個對象 - 文件:dansas.no,Line:47,Column:1' – mnsth

+0

在Chrome中,控制檯表示它不能識別jQuery使用的$,從而停止JS的執行。當你修好你的JS時,它會起作用。正如@anthonybell所說,對於瀏覽器來說,它是靜態內容。 – trizz

回答

6

只需通過jQuery更改$。它會工作。檢查你的控制檯,你會看到有關'$'的錯誤。

jQuery(document).ready(function() { 
    jQuery("<a>The link inserted in jQuery</a>") 
     .insertAfter("p") 
     .attr("href", "http://bi.ng") 
     .addClass("abonnerreklame") 
    ; 
}); 

這是因爲在實際的網站,jQuery是在無衝突模式,它改變「$」與「jQuery的」,因爲其他框架(如MooTools的)還可以用「$」

+1

非常感謝!我只是JavaScript/jQuery的新手,我自己從來沒有想到 - 我也沒有發現一個已經存在的問題。 – mnsth

2

Php不是動態的。就瀏覽器而言,由php腳本生成的內容是靜態的。將內容提供給客戶端時,客戶端無法區分由php腳本生成的內容與靜態內容之間的差異。由於JavaScript只在客戶端運行,所以關於javascript也是如此。

+0

你應該把這個作爲評論,因爲這不是他的問題的答案。 – rinchik

+0

但是清除那個對他來說+1) – rinchik

+0

@anthonybell謝謝你清理那個。我知道我並不總是使用關於PHP/JavaScript的正確詞語。 – mnsth

1

從您提供的鏈接中,它看起來像'$'沒有被正確定義或已被修改以適應wordpress noconflict。