Подтвердить что ты не робот

Console.log не работает вообще

Не работает куча кода, и я пытаюсь определить, где проблема, но console.log() не регистрирует никаких результатов в инструментах Chrome Dev, правильно ли я делаю это?

$(window).scroll(function() {
       $('section').each(function(){
            var id='#'+$(this).attr('id'),
                off=$(id).offset().top,
                hei=$(id).height(),
                winscroll=$(window).scrollTop(),
                dif=hei+off-($(window).height());

            if (winscroll >= off && winscroll<=dif) {
                console.log('first broken');
                $(id+' .sticky').removeClass('abs').addClass('fix');
            } else if (winscroll > dif){
                console.log('second broken');
                $(id+' .sticky').removeClass('fix').addClass('abs');
            } else {
                console.log('third broken');
                $(id+' .sticky').removeClass('fix abs');
            }   });
        });

EDIT FULL CODE ADDED

$(document).ready(function() {

    // If a browser supports 3D transforms use the fancy menu if it doesn't, use standard accordion menu instead
    if($('html').hasClass('csstransforms3d')){

        $( "#mp-menu" ).removeClass( "snap-drawers" ).addClass( "mp-menu" );

        $('nav ul li ul').css('border-bottom','1px solid rgba(255, 255, 255, .05)');
        $('nav ul li ul').css('background','none');

        // Insert elements where necessary to create the right structure
        $('#mp-menu').wrapInner('<div class="mp-level" />');
        $('#mp-menu').find('li > ul').wrap('<div class="mp-level" />');

        $("#mp-menu ul li .mp-level").prepend(function () {
            return '<span class="menu-title">' + $(this).prev().text() + '</span> <a class="ico mp-back" href="#">Back</a>';
        });

        // load in necessary JS files
        $.getScript('http://176.32.230.2/baodev.com/cjo/wp-content/themes/CJO/js/multi-level-menu.js');

    } else {

        // load in necessary JS files
        $.getScript( "http://176.32.230.2/baodev.com/cjo/wp-content/themes/CJO/js/jquery.navgoco.min.js", function() {
            $("#demo1").navgoco({accordion: true});
        });

        $.getScript( "http://176.32.230.2/baodev.com/cjo/wp-content/themes/CJO/js/snap.min.js", function() {

            // Snapper settings     
            var snapper = new Snap({
              element: document.getElementById('scroller'),
              disable: 'right',
              maxPosition: 291
            });

            var addEvent = function addEvent(element, eventName, func) {
                if (element.addEventListener) {
                return element.addEventListener(eventName, func, false);
              } else if (element.attachEvent) {
                  return element.attachEvent("on" + eventName, func);
              }
            };

            // Toggle button
            addEvent(document.getElementById('trigger'), 'click', function(){
                if( snapper.state().state=="left" ){
                    snapper.close();
                    $( ".menu-trigger" ).removeClass( "active" );
                } else {
                    snapper.open('left');
                    $( ".menu-trigger" ).addClass( "active" );
                }
            });

            addEvent(document.getElementById('scroller'), 'click', function(){
                if( snapper.state().state=="left" ){
                    $( ".menu-trigger" ).removeClass( "active" );
                }
            });

            /* Prevent Safari opening links when viewing as a Mobile App */
            (function (a, b, c) {
              if(c in b && b[c]) {
                  var d, e = a.location,
                      f = /^(a|html)$/i;
                  a.addEventListener("click", function (a) {
                      d = a.target;
                      while(!f.test(d.nodeName)) d = d.parentNode;
                      "href" in d && (d.href.indexOf("http") || ~d.href.indexOf(e.host)) && (a.preventDefault(), e.href = d.href)
                  }, !1)
              }
            })(document, window.navigator, "standalone");

        });

    } // end if

    fitHeight();

    $(window).scroll(function() {
        $('section').each(function(){
            var id='#'+$(this).attr('id'),
                off=$(id).offset().top,
                hei=$(id).height(),
                winscroll=$(window).scrollTop(),
                dif=hei+off-($(window).height());

           console.log('msj');

            if (winscroll >= off && winscroll<=dif) {
                $(id+' .sticky').removeClass('abs').addClass('fix');
            } else if (winscroll > dif){
                $(id+' .sticky').removeClass('fix').addClass('abs');
            } else {
                $(id+' .sticky').removeClass('fix abs');
            }
        });
     });

});

// Trigger FitHeight on browser resize
$(window).resize(fitHeight);

ИЗМЕНИТЬ

Некоторые биты полного кода (выше) относятся к другим файлам JS, и код не возвращает ошибок при запуске с этими файлами. После устранения неполадок я вижу консольное сообщение перед функцией прокрутки, но я не вижу консольное сообщение в функции прокрутки.

fitHeight();

    console.log('About to bind scroll effects'); // I SEE THIS MESSAGE

    $(window).scroll(function() {

        console.log("scroll bound, now loop through sections"); //BUT NOT THIS ONE

        $('section').each(function(){
4b9b3361

Ответ 1

Я чувствую себя немного глупо на этом, но пусть это станет уроком для всех... Убедитесь, что вы нацеливаете правый селектор!

В основном консоль ничего не записывала, потому что этот фрагмент кода пытался захватить область прокрутки моего окна, когда на самом деле мой код был настроен иначе, чтобы прокручивать весь DIV. Как только я изменил:

$(window).scroll(function() {

:

$('#scroller').scroll(function() {

Консоль начала регистрировать правильные сообщения.

Ответ 2

Похоже, что вы либо скрывали журналы JavaScript, либо указали, что хотите видеть только ошибки или предупреждения. Откройте инструменты разработчика Chrome и перейдите на вкладку "Консоль". Внизу вы хотите убедиться, что JavaScript отмечен галочкой, а также убедитесь, что вы выбрали "Все", "Журналы" или "Отладка".

Example Screenshot

На изображении выше у меня есть JavaScript, Network, Logging, CSS и Other ticked и выбрано "All".


Другая потенциальная проблема может заключаться в том, что ваша функция $(window).scroll() не обернута внутри функции .ready() (как описано здесь):

$(document).ready(function() {
    $(window).scroll(function() {
        ...
    });
});

Когда вы вставляете свой код в JSFiddle и даете некоторый фиктивный контент, ваш код работает отлично: JSFiddle demo.


Изменить:

Вопрос был отредактирован. Новый код дает две ошибки:

Неподготовлено ReferenceError: fitHeight не определен Uncaught TypeError: Не удается прочитать свойство addEventListener из null

Из-за этого код прекращает выполнение до достижения любого вызова console.log.

Ответ 3

В моем случае не отображались все консольные сообщения, потому что я оставил строку в текстовом поле "фильтр".

Удалите фильтр, нажав X, как показано:

enter image description here

Ответ 4

В моем случае я разрабатывал Polymer WebComponent, который включается с помощью <link rel="import"> в основной HTML-документ. Оказывается, что HTML файл WebComponent по какой-то причине кэшировался, хотя я изменил его с кешированной версии.

Чтобы решить эту проблему, я открыл консоль разработчика (в Chrome), щелкнув правой кнопкой мыши на стрелке перезагрузки рядом с панелью URL и выбрал "Empty cache and hard reload" - проблема решена.

Ответ 5

Рассмотрим более прагматичный подход к вопросу о "правильном выполнении".

console.log("about to bind scroll fx");

$(window).scroll(function() {

       console.log("scroll bound, loop through div's");

       $('div').each(function(){

Если оба из этих log выводятся правильно, то, скорее всего, проблема существует в вашем объявлении var. Чтобы отладить это, рассмотрите разбивку на несколько строк:

var id='#'+$(this).attr('id');

console.log(id);

var off=$(id).offset().top;
var hei=$(id).height();
var winscroll=$(window).scrollTop();
var dif=hei+off-($(window).height());

Делая это, по крайней мере во время отладки, вы можете обнаружить, что var id является undefined, вызывая ошибки во всей остальной части кода. Возможно ли, что некоторые из ваших тегов div не имеют идентификаторов?

Ответ 6

Просто вам нужно выбрать правую опцию, чтобы показать сообщения журнала из опции, представленной в левой части под вкладкой консоли. Вы можете сослаться на снимок экрана. screenshot

Ответ 7

Теперь в современных браузерах console.log() можно использовать, нажав клавишу F12. Картинка будет полезна для четкого понимания концепции. Console.log() and document.write()

Ответ 8

Возможно, вы использовали функцию фильтра в консоли, которая будет скрывать все, что не соответствует вашему запросу. Удалите запрос, и ваши сообщения будут отображаться.