JQuery не работает в WordPress - PullRequest
       5

JQuery не работает в WordPress

3 голосов
/ 19 сентября 2010

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

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

<!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>

Ответы [ 3 ]

4 голосов
/ 19 сентября 2010

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

1 голос
/ 24 декабря 2014

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

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

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

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

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

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

0 голосов
/ 19 сентября 2010

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

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

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

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

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

Uncaught TypeError: У Object # нет метода 'lightBox'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...