Совершенно одинаковые скрипты по-разному ведут себя на разных доменах
Здесь работает нормально. Это тестовый домен, фотки не заливала.
[del] Что имеется ввиду. Если нажать на выбор первого цвета - основного - на правильном сайте все происходит как и положено - цвет выбирается, к заголовку добавляется выбранный цвет. То же самое и для цвета перекладин. А здесь не работает. Это рабочий домен. [del] если нажать на выбор первого цвета - второй ломается. Появляются скрытые надписи и выбор дополнительного цвета становится невозможен. Не могу понять разницы, все залито один в один. Работает вот этот скрипт. $(document).ready(function() { $(function() { $(".input_type_radio .radio_attr_label").each(function(indx, el){ $(el.lastChild).wrap('<span class="colorname"/>') }); }); $('#block_attr_sel_2 .input_type_radio').click(function(){ $('#block_attr_sel_2 .input_type_radio').removeClass('selected'); $(this).addClass('selected'); $(".attributes_2 label.attributes_title span.colorname").remove(); $('.attributes_2 .input_type_radio.selected span.colorname').clone().appendTo('.attributes_2 .attributes_title .attributes_name'); }); $(window).on('load resize', function(){ if ($(window).width() <= 664) { $('.attributes_2').insertAfter('.image_middle'); } }); $('#block_attr_sel_42 .input_type_radio').click(function(){ $('#block_attr_sel_42 .input_type_radio').removeClass('selected'); $(this).addClass('selected'); $(".attributes_42 label.attributes_title span.colorname").remove(); $('.attributes_42 .input_type_radio.selected span.colorname').clone().appendTo('.attributes_42 .attributes_title .attributes_name'); }); $(window).on('load resize', function(){ if ($(window).width() <= 664) { $('.attributes_42').insertAfter('.image_middle'); } }); }); Вообще не понимаю в чем дело :-E |
А зачем в двух экземплярах обработчики?
|
Для каждого атрибута отдельный обработчик.
#block_attr_sel_2 для верхнего цвета и #block_attr_sel_42 для нижнего. Они должны работать независимо друг от друга |
Цитата:
|
Цитата:
|
Я пока не представляю как можно написать один обработчик вместо двух так, чтоб щелчок по одному никак не сказывался на другом.
Понимаю, что у меня не идеальный код, и что можно написать круче - только мне все равно не понятно почему на одном сервере работает, а на другом - нет.Сейчас меня интересует именно это. |
Цитата:
|
Цитата:
Посмотрите на селекторы по атрибутам jQuery, посредством которых можно описать один обработчик $('#block_attr_sel_2 .input_type_radio').click ... вместо двух и проблем никаких с определением источника событий внутри него не будет, как и с поиском родителя. Вы хотя бы попробуйте, с ошибками помогут разобраться. Цитата:
|
он ресайз идет совсем другая функция. Меня интересуют те, что на клик.
Забудьте обо всем, кроме вот этих двух вещей $('#block_attr_sel_2 .input_type_radio').click(function(){ $('#block_attr_sel_2 .input_type_radio').removeClass('selected'); $(this).addClass('selected'); $(".attributes_2 label.attributes_title span.colorname").remove(); $('.attributes_2 .input_type_radio.selected span.colorname').clone().appendTo('.attributes_2 .attributes_title .attributes_name'); }); $('#block_attr_sel_42 .input_type_radio').click(function(){ $('#block_attr_sel_42 .input_type_radio').removeClass('selected'); $(this).addClass('selected'); $(".attributes_42 label.attributes_title span.colorname").remove(); $('.attributes_42 .input_type_radio.selected span.colorname').clone().appendTo('.attributes_42 .attributes_title .attributes_name'); }); остальное - к делу не относится. И, если хотите что-то посоветовать - сначала, пожалуйста, посмотрите на сайт. |
Посмотрел. По первой ссылке не понять чего там правильного, по второй меняются картинки при выборе, что при этом "ломается" я не знаю, если выбор цвета перекладин, то не наблюдается. Все это до поры до времени, пока сценарии не подвешивают браузер, а отладчик сообщает об ошибках. Если при этом сказать, что html структура ваших block_attr_sel перегружены элементами, да они еще и нативные события обрабатывают, вы же мне предъявите претензии, что это мелочи и не важно. :)
|
Часовой пояс GMT +3, время: 13:57. |