Объект не поддерживает это свойство или метод - PullRequest
3 голосов
/ 09 мая 2011

Как говорится, я получаю эту ошибку на своем сайте.Я проверил с помощью средства отладки для разработчика 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

Пожалуйста, помогите мне разобраться.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 09 мая 2011

Попробуйте вместо этого:

$(function() {
    if($('#coda-slider-1').size())
    {
        $('#coda-slider-1').codaSlider();
        //jQuery.noConflict(); var $j = jQuery;
    }
}); 

В вашем исходном коде написано "ничего не выбирайте с помощью jQuery и примените к нему готовый обработчик". Правильный синтаксис длинной руки будет:

$(document).ready(function() { ...

Также обратите внимание, что я удалил eval, потому что он никогда не должен использоваться, если его невозможно избежать.

UPDATE

Глядя на ваши скриншоты с ошибками, выясняется, что jQuery не определен (по крайней мере, с псевдонимом $. Включили ли вы скрипт на свою страницу? Если да, вы вызываете jQuery.noConflict() до того, как ваш готовый обработчик связаны?

Попробуйте поместить этот тег сценария над кодом, который вы разместили, и тег сценария для ползунка кода:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>

ОБНОВЛЕНИЕ 2

Как указал kingjiv в комментариях ниже, я ошибся, и $().ready будет работать (хотя это и не рекомендуется). Я считаю, что мое первое обновление, отмечающее, что jQuery, похоже, не определен, является актуальной проблемой здесь.

0 голосов
/ 09 мая 2011

Проблемы:

  • $().ready не рекомендуется. использование $(document).ready(function или простой $(function.

  • Зачем использовать document.getElementById если jQuery уже ищет элементы использование селекторов в кроссбраузере путь? Просто сделайте $("#some").length, чтобы посмотрите, существует ли он.

  • Также в вашем случае я думаю, что хорошо убедитесь, что метод codaSlider() загружается перед звонком.

Исправленный код:

$(function() {
    if ($("#coda-slider-1").length > 0 && $("#coda-slider-1").codaSlider) {
        $('#coda-slider-1').codaSlider();
    }
});
0 голосов
/ 09 мая 2011

Полагаю, вы пытаетесь проверить наличие coda-slider-1?

Нет необходимости использовать eval, и если вы используете jquery, можете также выбрать элемент с помощью jquery:

if($("#coda-slider-1").length>0){

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