Переопределение поля выбора в JQuery не будет работать, если я сначала не вызову alert ()? - PullRequest
0 голосов
/ 19 ноября 2011

Я использую JQuery Modal, чтобы показать всплывающее окно с формой. Все выпадающие окна на моей панели управления изменены с помощью плагина jquery, который обычно работает нормально.Чтобы заставить Javascript работать с модальным, мне нужно сделать обратный вызов, но я получаю странные результаты.

Когда я открою модальное окно, я увижу только правильный выпадающий список, если я поставлю предупреждение незадолго доизменения выбора:

Обратный вызов:

var myOpen = function(hash){
    hash.w.css('opacity',1).show();
    alert("test"); //This will make the selects change properly.
    $('select').selectmenu();
};

Модальное открытие:

$('a#settings').click(function(){
    var script = 'myLink.php';
    $('#ex2').jqm({ajax: script, onShow: myOpen});
    $('#ex2').jqmShow({modal: true});
});

Я думаю, это связано с количеством времени для загрузкимодальный, потому что добавление предупреждения позволяет JS обрабатывать больше времени, но это кажется странным.

Я что-то упустил?

РЕДАКТИРОВАТЬ: Если я нажимаю кнопку "ОК" очень сильноfast выбор также не меняется, что подтверждает мою мысль о предупреждении, позволяющем JS обрабатывать время (хотя я все еще нахожу это странным).

1 Ответ

0 голосов
/ 19 ноября 2011

Хорошо, удалось отсортировать это, вызвав .selectmenu в событии onLoad вместо onShow.

Окончательный код выглядит примерно так:

var myLoad = function(hash){
    $('select').selectmenu();
};

$('a#settings').click(function(){
    var script = 'myLink.php';
    $('#ex2').jqm({ajax: script, onLoad: myLoad});
    $('#ex2').jqmShow({modal: true});
});
...