Как обновить одну функцию Javascript при вызове window.resize - PullRequest
0 голосов
/ 08 февраля 2011

Я застрял еще раз;

У меня есть функция jQuery в теге php-файла, которая получает ширину экрана для галереи.Он вызывается, когда страница загружается и работает довольно хорошо.Но теперь я хочу, чтобы функция вызывалась снова, каждый раз, когда размер окна изменяется, чтобы получить новый Screenwidth права.Одна возможность - использовать window.location.href для перезагрузки всей страницы при вызове window.resize, но это не то, что я хочу.

Есть ли способ только перезагрузить функцию (или весь блок кода javascript, написанный в) без перезагрузки связанных js-файлов и html-структуры ??Я просто хочу перезагрузить эту единственную функцию:

jqSlider(function(){

                var container = jqSlider('div.sliderGallery'); 
                var ul = jqSlider('ul', container); 
                var fensterBreite = jqSlider("#preloader").outerWidth(); 
                var itemsWidth = 2559 - fensterBreite; 

            jqSlider('.slider', container).slider({
                min: 0,
                max: itemsWidth,
                handle: '.handle',
                stop: function (event, ui) {
                    ul.animate({'left' : ui.value * -1}, 500, 'linear');
                },
                slide: function (event, ui) {
                    ul.css('left', ui.value * -1);
                }
            });

1 Ответ

0 голосов
/ 08 февраля 2011

Я признаю, что меня немного смущает ваш синтаксис, и я извиняюсь, если меня здесь нет, поэтому дайте мне знать, если это не то, что вам нужно, и я сделаю все возможное, чтобы изменить код, чтобы он твои нужды. Похоже, вы передаете анонимную функцию методу jqSlider, поэтому работаете в этом предположении:

  1. Переместите вашу анонимную функцию в ячейку памяти
  2. Передайте ссылку на функцию в ваш метод jqSlider
  3. Привязать ссылку на функцию к событию изменения размера окна

</p> <pre><code>var mySliderFunc = function () { var container = jqSlider('div.sliderGallery'); var ul = jqSlider('ul', container); var fensterBreite = jqSlider("#preloader").outerWidth(); var itemsWidth = 2559 - fensterBreite; jqSlider('.slider', container).slider({ min: 0, max: itemsWidth, handle: '.handle', stop: function (event, ui) { ul.animate({ 'left': ui.value * -1 }, 500, 'linear'); }, slide: function (event, ui) { ul.css('left', ui.value * -1); } }); }; jqSlider(mySliderFunc); $(window).resize(mySliderFunc);

...