#jquery #wordpress #e-commerce
#jquery #wordpress #электронная коммерция
Вопрос:
Как указано, я получаю эту ошибку на своем сайте. Я проверил через инструмент отладки разработчика IE8, и я получил следующий код, который вызвал ошибку.
<!-- slider js code start -->
<script type="text/javascript">
$().ready(function() {
if(eval(document.getElementById('coda-slider-1')))
{
$('#coda-slider-1').codaSlider();
//jQuery.noConflict(); var $j = jQuery;
}
});
Я включил скриншот из инструмента отладки Chrome.
http://img857.imageshack.us/i/javaerror.jpg
http://img204.imageshack.us/i/javaerror2.jpg
Пожалуйста, помогите мне разобраться.
Спасибо.
Комментарии:
1. является ли пустое
$()
опечаткой? Кроме того, зачем вызывать eval?2. что должна делать эта строка:
if(eval(document.getElementById('coda-slider-1')))
?3. Есть… Является ли этот код
eval
элементом DOM?
Ответ №1:
Попробуйте это вместо:
$(function() {
if($('#coda-slider-1').size())
{
$('#coda-slider-1').codaSlider();
//jQuery.noConflict(); var $j = jQuery;
}
});
В вашем исходном коде сказано «ничего не выделять с помощью jQuery и применить к нему этот готовый обработчик». Правильный синтаксис для длинных строк был бы:
$(document).ready(function() { ...
Также обратите внимание, что я удалил eval
, потому что его никогда не следует использовать, если только этого нельзя избежать.
Обновить
Глядя на ваши скриншоты с ошибками, кажется, что jQuery не определен (по крайней мере, не с $
псевдонимом. Вы включили скрипт на свою страницу? Если да, вызываете ли вы jQuery.noConflict()
перед привязкой вашего готового обработчика?
Попробуйте поместить этот тег script как над опубликованным вами кодом, так и над тегом script для слайдера coda:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
ОБНОВЛЕНИЕ 2
Как указал kingjiv в комментариях ниже, я ошибся, и $().ready
будет работать (хотя это и не рекомендуется). Я полагаю, что мое первое обновление, в котором отмечается, что jQuery, похоже, не определен, является актуальной проблемой здесь.
Комментарии:
1. Я не хочу жаловаться, но теперь я дважды проголосовал против без объяснения причин. Я не возражаю, если вы думаете, что я неправ, но я был бы признателен, если бы вы знали, в чем проблема.
2. Эндер, ты не мог бы помочь мне исправить эту проблему? Я действительно понятия не имею, что делать, поскольку я не знаком с кодированием. Не могли бы вы оставить свой адрес электронной почты, чтобы я мог связаться с вами? Я был бы очень признателен, если бы вы могли мне помочь. Заранее благодарю вас.
3. @Jone — Извините, но я не собираюсь публиковать свой адрес электронной почты в публичном пространстве, подобном этому. Попробуйте следовать предложениям, которые я сделал.
4. Эндер, я подписался на твой твиттер, пожалуйста, подписывайся и на меня, чтобы я мог отправлять тебе сообщения. Спасибо.
5. Еще раз, извините, но нет. Что не так с использованием этого потока комментариев?
Ответ №2:
Я предполагаю, что вы пытаетесь проверить существование coda-slider-1
?
Нет необходимости использовать eval, и если вы используете jquery, можете также выбрать элемент с помощью jquery:
if($("#coda-slider-1").length>0){
}
Ответ №3:
Проблемы:
-
$().ready
не рекомендуется. Используйте$(document).ready(function
или simple$(function
. -
Зачем использовать
document.getElementById
, если jQuery уже выполняет поиск элементов с помощью селекторов кроссбраузерным способом? Просто сделайте$("#some").length
, чтобы увидеть, существует ли оно. -
Также в вашем случае, я думаю, хорошо убедиться, что
codaSlider()
метод загружен перед вызовом.
Исправленный код:
$(function() {
if ($("#coda-slider-1").length > 0 amp;amp; $("#coda-slider-1").codaSlider) {
$('#coda-slider-1').codaSlider();
}
});