2010-09-19 2 views
3

Wordpress не загружает jquery - я думаю, что это может иметь какое-то отношение к тому, что он загружает файлы абсолютно, а не относительно, и он не пойдет на URL (firebug говорит, что доступ отказано в ограничении uri). Я тестировал ванильный javascript, и это работает, однако, как только я пытаюсь выполнить даже самую основную функцию в $(document).ready(function(){}), он перестает работать. Есть ли способ остановить wordpress от добавления uri к связанным файлам и ссылаться на них относительно вместо этого, поскольку я думаю, что это может исправить это.jQuery не работает в wordpress

Выведенный головка выглядит следующим образом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head profile="http://gmpg.org/xfn/11"> 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

    <title>simplespace &mdash; not quite ready yet</title> 



<meta name="generator" content="WordPress 3.0.1" /> <!-- leave this for stats --> 

<link rel="stylesheet" href="http://simplespace.co.nz/wp-content/themes/blass2/style.css" type="text/css" media="screen" /> 

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://simplespace.co.nz/feed/" /> 

<link rel="alternate" type="text/xml" title="RSS .92" href="http://simplespace.co.nz/feed/rss/" /> 

<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="http://simplespace.co.nz/feed/atom/" /> 

<link rel="pingback" href="http://simplespace.co.nz/xmlrpc.php" /> 

<link rel="shortcut icon" href="http://simplespace.co.nz/wp-content/themes/blass2/favicon.ico" /> 

    <link rel='archives' title='September 2010' href='http://simplespace.co.nz/2010/09/' /> 

<link rel='stylesheet' id='sociable3-css' href='http://simplespace.co.nz/wp-content/plugins/sociable-30/sociable.css?ver=5.10' type='text/css' media='all' /> 
<script type='text/javascript' src='http://simplespace.co.nz/wp-includes/js/jquery/jquery.js?ver=1.4.2'></script> 
<script type='text/javascript' src='http://simplespace.co.nz/wp-content/plugins/wordpress-flickr-manager/js/jquery.lightbox.js?ver=3.0.1'></script> 
<script type='text/javascript' src='http://simplespace.co.nz/wp-content/plugins/wordpress-flickr-manager/js/wfm-lightbox.php?ver=3.0.1'></script> 
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://simplespace.co.nz/xmlrpc.php?rsd" /> 
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://simplespace.co.nz/wp-includes/wlwmanifest.xml" /> 
<link rel='index' title='simplespace' href='http://simplespace.co.nz/' /> 
<meta name="generator" content="WordPress 3.0.1" /> 
<script type="text/javascript" src="http://simplespace.co.nz/wp-content/plugins/audio-player/assets/audio-player.js?ver=2.0.4.1"></script> 
<script type="text/javascript">AudioPlayer.setup("http://simplespace.co.nz/wp-content/plugins/audio-player/assets/player.swf?ver=2.0.4.1", {width:"400",animation:"yes",encode:"yes",initialvolume:"60",remaining:"no",noinfo:"no",buffer:"5",checkpolicy:"no",rtl:"no",bg:"dcf2fa",text:"333333",leftbg:"dcf2fa",lefticon:"333333",volslider:"666666",voltrack:"cfcfcf",rightbg:"9ee1f7",rightbghover:"dcf2fa",righticon:"333333",righticonhover:"333333",track:"FFFFFF",loader:"9ee1f7",border:"CCCCCC",tracker:"dcf2fa",skip:"666666",pagebg:"FFFFFF",transparentpagebg:"yes"});</script> 

<!-- WFM INSERT LIGHTBOX FILES --> 
<link rel="stylesheet" href="http://simplespace.co.nz/wp-content/plugins/wordpress-flickr-manager/css/lightbox.css" type="text/css" /> 
<!-- WFM END INSERT --> 


<script type='text/javascript'> 
$(document).ready(function() { 
    alert('test'); 
}); 
</script> 
</head> 
+0

Пожалуйста, добавьте что-то у вас сейчас в . кажется, что вы не можете включать файл jquery в заголовке непосредственно перед $ (document) .ready (function() {}) –

ответ

4

Wordpress ставит JQuery ни в коем конфликта режиме, который отключенной функции $(). Если вы не отключите режим без конфликтов в jQuery, вам нужно будет использовать jQuery() вместо $().

+0

Прежде чем использовать какой-либо код: var $ = jQuery; – lucasgabmoreno

0

Я посмотрел сайт и загружается jquery. Это:

<script type='text/javascript'> 
$(document).ready(function() { 
    alert('test'); 
}); 
</script> 

не работает, потому что WordPress использует jquery в режиме без конфликтов. Это:

jQuery(document).ready(function($){ 
alert('test'); 
    }); 

как его следует вызывать в режиме без конфликтов. Также Lightbox плагин бросает ошибку:

Uncaught TypeError: Объект # не имеет метод 'Lightbox'

1

Попробуйте это:

Полный ответ для тех, кто сталкивается с той же проблемой

Вы можете обернуть свой javascript внутри функции self-invoking, а затем передать jQuery в качестве аргумента, используя $ в качестве локального имени переменной. Например:

(function($) { 
    $(document).ready(function(){ 
     alert('test'); 
    }); 
}(jQuery)); 

jQuery библиотека в комплекте с WordPress установлен в режим noConflict(). Это необходимо для предотвращения проблем совместимости с другими библиотеками JavaScript, которые WordPress может связывать.

В режиме noConflict() глобальный $ ярлык для jQuery недоступен.

Смежные вопросы