jquery click .addClass проблема - PullRequest
1 голос
/ 28 мая 2011

Привет, у меня были проблемы с этим весь день, это почти работает, но не совсем, мне нужно, чтобы соответствующий p (# p-1 и т. Д.) Оставался выделенным, как только щелкнул ноготь большого пальца.Я использовал плагин для ползунка изображения, который я немного изменил, и события mouseover и mouseleave работают нормально, но событие click не появляется, чтобы добавить класс к целевому абзацу.

Пример на jsfiddlehttp://jsfiddle.net/RVYnb/7/

Соответствующий jQuery написан встроенным на примере.

это сводит меня с ума, пожалуйста, помогите!

Ответы [ 2 ]

2 голосов
/ 28 мая 2011

Ошибка в плагине слайдера изображений. Он также привязывается к событию click в коде.

Вот соответствующая часть кода в плагине:

jQuery("div#thumbSlider" + j + " a").each(function(z) {            
            jQuery(this).bind("click", function(){
                jQuery(this).find("p.tmbrdr").css({borderColor: settings.thumbsActiveBorderColor, opacity: settings.thumbsActiveBorderOpacity});
                jQuery(this).parent().parent().find("p.tmbrdr").not(jQuery(this).find("p.tmbrdr")).css({borderColor: settings.thumbsBorderColor, opacity: settings.thumbsBorderOpacity});
                var cnt = -(pictWidth*z);
                (cnt != container.find("ul").css("left").replace(/px/, "")) ? container.find("span.typo").animate({"opacity": 0}, 250) : null ;
                container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc, function(){container.find("span.typo").animate({"opacity": settings.typoFullOpacity}, 250)});                    
                return false;
            });
        });

Проблема заключается в «возврате ложного» в конце. Он останавливает распространение на другие события щелчка.

Измените код на следующий:

Query(this).bind("click", function(e){
                    jQuery(this).find("p.tmbrdr").css({borderColor: settings.thumbsActiveBorderColor, opacity: settings.thumbsActiveBorderOpacity});
                    jQuery(this).parent().parent().find("p.tmbrdr").not(jQuery(this).find("p.tmbrdr")).css({borderColor: settings.thumbsBorderColor, opacity: settings.thumbsBorderOpacity});
                    var cnt = -(pictWidth*z);
                    (cnt != container.find("ul").css("left").replace(/px/, "")) ? container.find("span.typo").animate({"opacity": 0}, 250) : null ;
                    container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc, function(){container.find("span.typo").animate({"opacity": settings.typoFullOpacity}, 250)});                    
                    e.preventDefault();
                });
            });

и оно должно работать.

0 голосов
/ 28 мая 2011

Мне кажется, согласно "скрипке", что ваше событие "щелчка" не работает с вашими миниатюрами.Он никогда не добавляет класс "clicked" к вашему

.

Я бросил «предупреждение» в это:

$("#t1").live("click", function() {
    alert('clicking');
    $("#p-1").addClass("clicked").addClass("highlighted");
});

, и предупреждение никогда не появлялось.

...