2013-06-26 2 views
0

Я пытаюсь обновить страницу, когда ширина окна пересекает между 1439px. Я знаю, что это не очень хорошая практика, но мне нужно активировать плагин, когда экран становится меньше 1439 пикселей. Я осмотрелся и получил несколько экземпляров для работы, однако обновление просто контуров бесконечно.JQUERY - Обновление страницы при ширине окна 1439px

Кто-нибудь знает, как заставить страницу обновить ровно 1439px и запустить только один раз?

Спасибо!

+0

Вы уверены, что вам действительно нужно обновить страницу? Какой плагин вы активируете? – nderscore

+0

Я создаю отзывчивый веб-сайт, который имеет логотипы, проходящие по ширине нижнего колонтитула. Очевидно, когда экран res становится меньше, не будет достаточно места, поэтому я хочу активировать плагин jScrollpane на 1439px. – user2350789

+0

Так что вам не нужно обновлять страницу в конце концов! Я отправлю ответ в ближайшее время. – nderscore

ответ

0

Возможно, лучший выбор - добавить один параметр к URL-адресу, чтобы не перезагрузить плагин. Что-то вроде этого:

function getURLParameter(name) { 
    return decodeURI(
     (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] 
    ); 
} 

if($(window).width() === 1439 && !getURLParameter(noReload)) 
     window.location.href = window.location.href + "?noReload=1&loadPlugin=1"; 

После этого, вам нужно проверить, существует ли Пары LoadPlugin и загрузить плагин

0

Вам не нужно обновлять страницу на всех.

$(window).load(function(){ 
    var scrollPaneDone = false, 
     testScrollPane = function(){ 
      if(scrollPaneDone || $(window).width() > 1439) return; 
      $('#someElement').jScrollPane(); 
      scrollPaneDone = true; 
     }; 
    $(window).bind('resize', testScrollPane); 
    testScrollPane(); 
}); 

Объяснение:

Во-первых, мы определяем переменную scrollPaneDone, которая будет хранить ли или нет, мы уже инициализирован плагин JScrollPane. (Поэтому мы не инициализируем его дважды)

Затем мы определяем функцию, которая проверяет, была ли мы уже инициализирована прокрутка или если ширина окна больше 1439, функция вернется и ничего не сделает. В противном случае мы инициализируем плагин jScrollPane и устанавливаем нашу переменную scrollPaneDone в true.

Затем мы привязываем эту функцию к событию изменения размера окна. А затем вызовите функцию один раз, на всякий случай, если окно уже меньше 1439px, оно активирует плагин jScrollPane при загрузке страницы.

+0

Извините за отложенный ответ, это работает частично ... Он инициализирует jScrollPane, когда вы уменьшаете ширину экрана до 1439px, но он не удаляет его снова после увеличения. Есть идеи? – user2350789

+0

Вместо того, чтобы это сделать, я предлагаю изучить функцию повторного инициализации jScrollPane. http://jscrollpane.kelvinluck.com/api.html#reinitialise, который вы можете вызвать в любое время, когда страница обновляется. Вы можете привязать эту функцию к вызову в любое время, когда страница будет изменена, и если в содержимом будет достаточно места, полосы прокрутки исчезнут. Это гораздо более чистое решение. – nderscore