Drupal 7 Jquery Action должно происходить каждый раз, а не один раз - PullRequest
1 голос
/ 30 ноября 2011

У меня есть сайт на drupal 7, и я загружаю скрипт jquery уровня темы, добавив его в свой файл .info:

scripts[] = script.js

Я хочу, чтобы он перемещал ajax-пейджер views при каждом нажатии на ссылку (ссылка меняет голосование по контенту, как на hotornot.com). Точный код, который я использую в моем script.js, приведен ниже, и пока он работает, но работает только при первом щелчке, а не после. Как это может произойти $("li.pager-next a").click(); при КАЖДОМ клике a.ratebutton?

(function($) {
  $(document).ready(function() {        
     $("a.rate-button").click(function(){

    // $(this).hide();
    $("li.pager-next a").click();
      // window.location = $("li.pager-next a").attr('href');

    });
  });
}(jQuery));  

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Вы должны использовать систему поведения JavaScript в Drupal и jQuery Once вместо готовых документов.Другой код с хорошим поведением, добавляющий контент на страницу, должен затем присоединить все определенные поведения, используя Drupal.attachBehaviors(addedElement).

(function($) {
  Drupal.behaviors.myFunkyTheme = {   
    'attach': function(context, settings) {
      $("a.rate-button", context).once('funky-theme').click(function(){
        // $(this).hide();
         $("li.pager-next a").click();
         // window.location = $("li.pager-next a").attr('href');
      });
    }
  }
}(jQuery));
0 голосов
/ 30 ноября 2011

Я не уверен, что это ваш случай, но если ссылка восстановлена ​​с помощью ajax, вы должны использовать live () (если вы используете jQuery до 1.7)

 $("a.rate-button").live('click', function(){

// $(this).hide();
   $("li.pager-next a").click();
  // window.location = $("li.pager-next a").attr('href');

   });

или on) jQuery 1.7 и после

$("body").on("click", "a.rate-button", function(){
   $("li.pager-next a").click();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...