Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.08.2015, 11:19
Новичок на форуме
Отправить личное сообщение для pochtdim Посмотреть профиль Найти все сообщения от pochtdim
 
Регистрация: 19.08.2015
Сообщений: 4

Не посноянно, но через некоторое время перестает работа скрипт
Написал вот такой скриптик для зум эффекта

var lisImageZoom = {
    JQ_IMG_IND: '.img-responsive',
    JQ_IMG_WRAPPER_IND: '.product-image-container',
    JQ_HOVER_IND: '.product_list li',
    bufWidth: 0,
    bufHeght: 0,
    init: function(){
        this.bind();
    },
    bind: function(){
        var self = this;
        $(this.JQ_HOVER_IND).live('mouseenter', function(){
            self.bufWidth = self.getImageWidth(this);
            self.bufHeght = self.getImageHeight(this);
            $(self.JQ_IMG_WRAPPER_IND, this).width(self.bufWidth);
            $(self.JQ_IMG_WRAPPER_IND, this).height(self.bufHeght);
            $(self.JQ_IMG_IND, this).css({
                'transition': 'all 1s ease 0s',
                'max-width': self.bufWidth*1.2 + 'px',
                'width': self.bufWidth*1.2 + 'px',
                'margin': '-'+self.bufWidth*0.1 + 'px'
            });
        });
        $(this.JQ_HOVER_IND).live('mouseleave', function(){
            $(self.JQ_IMG_WRAPPER_IND, this).width('auto');
            $(self.JQ_IMG_WRAPPER_IND, this).height('auto');
            $(self.JQ_IMG_IND, this).css({
                'transition': 'none',
                'max-width': '100%',
                'width': 'auto',
                'margin': '0px'
            });
        });
    },
    getImageWidth: function($parent){
        return $(this.JQ_IMG_IND, $parent).width();
    },
    getImageHeight: function($parent){
        return $(this.JQ_IMG_IND, $parent).height();
    }
};
$(document).ready(function(){
    lisImageZoom.init();
});


При загрузке страницы все работает, но иногда(очень часто) через определенное время, или при переключении на другое приложение перестает работать. Ошибок в консоли нет. В чем может быть причина?

Еще заметил, что перестает работать автопрокрутка в bxslider

Последний раз редактировалось pochtdim, 19.08.2015 в 14:36.
Ответить с цитированием
  #2 (permalink)  
Старый 19.08.2015, 13:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Сообщение от pochtdim
live
может причина в устаревшей jQuery
Ответить с цитированием
  #3 (permalink)  
Старый 19.08.2015, 14:34
Новичок на форуме
Отправить личное сообщение для pochtdim Посмотреть профиль Найти все сообщения от pochtdim
 
Регистрация: 19.08.2015
Сообщений: 4

Сообщение от рони Посмотреть сообщение
может причина в устаревшей jQuery
jQuery v1.11.0

Раньше такого не замечал. Циклов нет. Память в норме. Ошибок нет. А проблема есть. Чем можно еще отмониторить? Причем проблема не регулярная а переодическая и во всех браузерах. IE, FF, CHR, Safary
Ответить с цитированием
  #4 (permalink)  
Старый 19.08.2015, 14:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

pochtdim,
в картинках не проставлен размер и вы используите устаревшую jQuery - писать версию ненадо надо править код с live на on
Ответить с цитированием
  #5 (permalink)  
Старый 19.08.2015, 14:56
Новичок на форуме
Отправить личное сообщение для pochtdim Посмотреть профиль Найти все сообщения от pochtdim
 
Регистрация: 19.08.2015
Сообщений: 4

спасибо, только хотел написать, что on помогло)

Если бы в картинках был проставлен размер, то этот скрипт не нужен все через css. А лив нужен так как ajax( счас буду дописывать обработчик.

А не вкурсе от чего косяк. Ведь изначально работает.

Последний раз редактировалось pochtdim, 19.08.2015 в 14:58.
Ответить с цитированием
  #6 (permalink)  
Старый 19.08.2015, 15:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

pochtdim,
если всё работает но интересно надо гуглить косяки live
Сообщение от pochtdim
А лив нужен так как ajax
ненужен
потому что есть on -- 'mouseenter' ставят на обьект который есть всегда -- пусть он следит за тем на какие элементы внутри него навели
$(parent).on('mouseenter', 'элемент или селектор картинки ', function() {

})
Ответить с цитированием
  #7 (permalink)  
Старый 19.08.2015, 15:23
Новичок на форуме
Отправить личное сообщение для pochtdim Посмотреть профиль Найти все сообщения от pochtdim
 
Регистрация: 19.08.2015
Сообщений: 4

Сообщение от рони Посмотреть сообщение
если всё работает но интересно надо гуглить косяки live
Гуглю) и не минимизированый смотрю мож что пойму)
Сообщение от рони Посмотреть сообщение
потому что есть on -- 'mouseenter' ставят на обьект который есть всегда -- пусть он следит за тем на какие элементы внутри него навели
Это еще доп обработчик писать , проще еще раз инициализировать при новом состоянии DOM)
Ответить с цитированием
  #8 (permalink)  
Старый 19.08.2015, 15:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Сообщение от pochtdim
проще еще раз инициализировать при новом состоянии DOM
можно и так
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли на функцию php повесить триггер и отследить выполнение через скрипт? ligisayan jQuery 1 26.06.2015 14:21
Вставка скрипта через скрипт zevilz Events/DOM/Window 1 18.04.2015 14:53
Автоматическая работа script в подгруженном через AJAX div'e rost Javascript под браузер 4 06.07.2012 21:24
Удаленная работа на сайте через html страницу Sanches Общие вопросы Javascript 19 11.08.2009 13:21
Работа с окнами через opener. Нид хелп RAUS Events/DOM/Window 1 29.07.2009 19:59