У меня может быть ошибка в документе .js
в теме, которую у меня есть:
$('.tagcloud a').wrap('<span class="st_tag" />');
Я пытаюсь его решить, но я не программист, поэтому я не знаю, как это сделать. Сайт таков: http://www.framerental.com.
У меня может быть ошибка в документе .js
в теме, которую у меня есть:
$('.tagcloud a').wrap('<span class="st_tag" />');
Я пытаюсь его решить, но я не программист, поэтому я не знаю, как это сделать. Сайт таков: http://www.framerental.com.
Вы используете jQuery.noConflict();
So $
is undefined.
Подробнее об этом можно прочитать здесь docs
Попробуйте изменить свой код таким образом (добавьте знак $
в готовую):
jQuery(document).ready(function($) {
// Code that uses jQuery $ can follow here.
});
Ошибки функций являются общими для почти всех систем управления контентом, и есть несколько способов, которыми вы можете это сделать.
Оберните свой код, используя:
<script>
jQuery(function($) {
YOUR CODE GOES HERE
});
</script>
Вы также можете использовать jQuery API, используя noConflict();
<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery $ can follow here.
});
// Code that uses other library $ can follow here.
</script>
Другой пример использования noConflict без использования готового документа:
<script>
jQuery.noConflict();
(function( $ ) {
$(function() {
// YOUR CODE HERE
});
});
</script>
Вы даже можете создать свой псевдоним, чтобы избежать конфликтов:
var jExample = jQuery.noConflict();
// Do something with jQuery
jExample( "div p" ).hide();
Еще одним более длинным решением является переименование всех ссылок $в jQuery:
$( "div p" ).hide();
до jQuery( "div p" ).hide();
Вместо этого:
$(document).ready(function() { });
Вы должны делать это:
jQuery(document).ready(function($) {
// your code goes here
});
Это потому, что WordPress может использовать $для чего-то другого, кроме jQuery, в будущем или сейчас, и поэтому вам нужно загрузить jQuery таким образом, что $можно использовать только в обратном вызове документа jQuery.
Либо вы не включаете jquery toolkit/lib, как некоторые предположили, либо существует конфликт. Чтобы проверить: включить jQuery и протестировать следующим образом:
console.log($);
console.log($ === jQuery);
Если $
не undefined, а $ === jQuery
log false, у вас определенно есть конфликт на ваших руках. Замена вашего $
на jQuery
решает это, но это может быть довольно утомительным (все, что лишний ввод...). Обычно я запускаю свои скрипты с $jq = _$ = jQuery;
, чтобы по крайней мере иметь более короткую ссылку на объект jQuery.
Просто добавьте это:
<script>
var $ = jQuery.noConflict();
</script>
в тег заголовка в header.php. Или в случае, если вы хотите использовать знак доллара в области администратора (или где-нибудь, где header.php не используется), прямо перед местом, которое вы хотите использовать.
(Возможно, есть некоторые конфликты, о которых я не знаю, протестируйте их и, если есть, используйте другие предлагаемые здесь решения или по ссылке ниже.)
Источник: http://www.wpdevsolutions.com/use-the-dollar-sign-in-wordpress-instead-of-jquery/
Я добавил пользовательский script файл, загруженный в конце раздела head
, и вставил сверху вверх:
(function (jQuery) {
window.$ = jQuery.noConflict();
})(jQuery);
(Это модификация ответа Fanky)
Помимо noConflict, это также полезно:
(function( $ ) {
// Variables and DOM Caching using $.
var body = $('body');
console.log(body);
})( jQuery );
Если вы включили jQuery, может возникнуть конфликт. Попробуйте использовать jQuery
вместо $
.
Я смог решить эту проблему очень просто, просто wp_enqueue_script("jquery");
jQuery в очередь wp_enqueue_script("jquery");
jQuery может отсутствовать.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>