2016-05-27 1 views
1

Я пытаюсь настроить плагин wordpress, который называется wp post listing. Я хочу настроить таргетинг на # basic-waypoint-cyberwrath, который обертывает кнопку загрузки больше, потому что плагин не имеет автоматизации. Вам нужно вручную нажать кнопку загрузки больше, в которой мне это не нравится.Waypoint и Inview jquery. Как исправить ошибку DOM

Это код, который я получил до сих пор для INview:

var inview = new Waypoint.Inview({ 
    element : $('#basic-waypoint-cyberwrath')[0], 
    enter : function(direction) { 
     //alert('Enter triggered with direction ' + direction) 
    }, 
    entered : function(direction) { 
     //alert('Entered triggered with direction ' + direction) 
     $('.wpp_loadmore_pager').click(); 
    }, 
    exit : function(direction) { 
     //alert('Exit triggered with direction ' + direction) 
    }, 
    exited : function(direction) { 
     //alert('Exited triggered with direction ' + direction) 
    } 
}); 

Когда я использую функцию оповещения. Он очень хорошо сигнализирует о просмотре независимо от того, сколько раз я прокручивал его до идентификатора. Он продолжает активировать функцию предупреждения. Но когда я использовал функцию click. Он срабатывает только один раз, потому что # basic-waypoint-cyberwrath был вновь динамически загружен каждый раз, когда вы нажимаете кнопку загрузки больше. Это самый близкий код, который я сделал до сих пор. ,

И это код, который я до сих пор для Точки:

var $fusionheader = $('#basic-waypoint-cyberwrath'); 
$fusionheader.waypoint(function(direction) { 
    if (direction === 'down') { 
     // do stuff 
     //alert('I am going down'); 
     $('.wpp_loadmore_pager').click(); 
    } 
    jQuery.waypoints('refresh'); 
}, { 
    offset : '90%' 
}); 

Я уже попробовал почти все. Я больше не знаю, что мне здесь не хватает. Оба хороши при прокрутке вниз в первый раз, а затем срабатывают, когда он видит # basic-waypoint-cyberwrath, но он больше не запускается для раунда 2 и так далее на кнопке загрузки больше, чтобы увидеть другие списки сообщений.

Я даже попробовал для оператора цикла, но до сих пор не повезло:

var discreteElements = document.getElementById('basic-waypoint-cyberwrath'); 
for (var i = 0; i < discreteElements.length; i++) { 
    new Waypoint.Inview({ 
     element : this, 
     enter : function(direction) { 
     }, 
     entered : function(direction) { 
      //animatelettering.textillate('in') 
      $('.wpp_loadmore_pager').click(); 
     }, 
     exit : function(direction) { 
      //animatelettering.textillate('out') 
     }, 
     exited : function(direction) { 
     } 
    }); 
}; 

Пожалуйста, помогите.

+0

Это звучит для меня как проблема DOM. Скорее всего, '.wpp_loadmore_pager' динамически добавляется после прокрутки, поэтому' .click() 'влияет только на исходный элемент DOM. Что происходит (или должно произойти) при нажатии на .wpp_loadmore_pager'? Кроме того, вы можете вручную щелкнуть этот элемент, и если да, то работает ли он? – johnniebenson

+0

Да, это работает Джон. О проблеме DOM. О, я вижу. Я не знал. Наверное, это проблема. Любое решение для этого? И ты прав. Wpp_loadmore_pager загружается динамически в бесконечной прокрутке –

+0

@johnniebenson Когда вы нажимаете кнопку .wpp_loadmore_pager. Он исчезнет, ​​и появится значок загрузки. Он загрузит остальные 10 записей, а затем появится новая кнопка .wpp_loadmore_pager после загрузки 10 сообщений. –

ответ

0

Вам нужно будет отследить, что на самом деле вызывает загрузку этих сообщений (возможно, функцию) и повторно подключить обработчик к событию клика там. Вы можете сделать это с помощью

$(".container").on("click", ".wpp_loadmore_pager", function() { 
    //load_function(); 
}); 

Скорее всего .wpp_loadmore_pager имеет событие щелчка прикрепленную к нему где-то и он работает несколько функций (load_posts(), get_posts(), и т.д.). В этой функции вы, вероятно, увидите код, который воссоздает эту кнопку. Вот где вам нужно будет снова привязать обработчик.

+0

Привет, Джоннибенсон, спасибо за помощь, но я не уверен, понимаете ли вы, что мне нужно. Просто чтобы быть более ясным и посмотреть, находимся ли мы на одной странице. Проверьте это видео: http://cyberwrathinternetmarketing.com/graphicdesigns/infinite-scroll.wmv –

+0

Как вы можете видеть. Плагин wordpress с бесконечным прокруткой по-прежнему требует, чтобы вручную щелкнуть кнопку загрузки больше, но мне не нравится эта концепция. Использование моих пользовательских кодов. Когда я прокручиваю вниз и ударяю по целевому идентификатору с помощью waypoint и inview. Я смог автоматизировать событие click на кнопке. Но на втором прокручивается. Автоматический щелчок не работал. Именно там начинается вопрос DOM, в котором мне нужно его исправить. –

+0

Просто, чтобы быть ясным, ваш on() jquery - это решение для такого типа автоматизации?Я думаю, что ваше предложение о() по-прежнему требует, чтобы вручную щелкнул его? В этом случае не нужно делать ручной щелчок. Он должен щелкнуть автоматически, когда он прокручивается до целевого идентификатора basic-waypoint-cyberwrath. Как только этот код работает отлично. Я смогу спрятать кнопку загрузки больше навсегда. Как и в newsroom.uber.com Это моя конечная цель. :) –

Смежные вопросы