JQuery генерирует отзывчивое меню выбора, не работающее в Chrome - PullRequest
1 голос
/ 27 февраля 2011

Я использую jQuery для преобразования меню навигации в список выбора, когда окно браузера маленькое, для адаптивного дизайна.Тем не менее, выбор параметров перенаправления списка выбора на соответствующую страницу в Firefox и Opera в браузерах на основе Webkit, выбор параметра ничего не делает.

Live demo - http://emoeco.com

$('ul.menu').each(function(){

                var action="loadPage(this.form.elements[0])";
                var form=$(document.createElement('form')).insertBefore($(this));
                $(form).attr({
                method: 'post'
                });
                var select=$(document.createElement('select')).appendTo(form);
                $(select).attr("onchange", action);
                 $('>li a', this).each(function(){
                 var a=$(this).click(function(){
                 window.location.href=this.href;
                 }),
                 option=$(document.createElement('option')).appendTo(select).val(this.href).html($(this).html()).click(function(){
                 a.click();
                 });
                 });

                 });

1 Ответ

1 голос
/ 27 февраля 2011

Во-первых, вы должны открыть консоль JavaScript и посмотреть на ошибки.Большинство из них связано с тем, что файлы не найдены.

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

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

В-четвертых, если вам не нравятся Thirds, почему бы не сбросить весь объект привязки, а просто использовать родное событие select 'change'?

$('select').change(function() {
    location.href = $(this).children('option:selected').val();
});

Edit: почему он не работает только в WebKit, потому что они не привязывают событие click к элементу 'option'.По крайней мере, это то, что я думаю: вы можете попробовать этот пример (добавьте / измените URL, чтобы увидеть исходный код.) Протестировано, работает в FireFox, ничего не получилось в Chrome

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...