2012-01-06 3 views
1

Я использую jquery (mobile) для создания меню выбора, которое скрывает/показывает столбцы таблицы HTML.Как сменить change() в динамическом сгенерированном множественном выборе?

выглядит так:

container = $('<select name="toggleCols" id="toggleCols" multiple="multiple"><option value="default" data-placeholder="true">Edit</option></select>'); 

$('.tableRows').each(function(i) { 
    if ($(this).is(".toggle")) { 
     var toggle = $('<option value="'+i+'">sometext'+i'+</option>'); 
    container.find("#toggleCols").append(toggle); 
    }); 

Это создает меню выбора, который содержит один вариант для каждого столбца таблицы. Выбор этой опции должен скрыть/переключить соответствующий столбец таблицы.

Однако, я не могу получить событие изменения к огню:

$("#toggleCols").change(function(){ 
    console.log("change") 
    // do stuff 
    }) 

Если я использую вживую («изменение» ... и иметь 10 столбцов, я получаю 10 console.logs каждый раз, когда я выбираю один вариант. Так что это не работает.

ВОПРОС
есть ли способ использовать изменения, не живут и получить один console.log?

+1

Показать _testcase_, а не произвольные фрагменты кода, который вы не используете. –

+1

Не могли бы вы нас устроить? –

+0

вам может потребоваться связать или вызвать событие –

ответ

0

Мне нужно было удалить привязку события из цикла, добавляя параметры. Затем с использованием live работает отлично и только один раз.

1

Используете ли вы последнюю версию jQuery? Была проблема с этим, которая была исправлена ​​после jQuery 1.4.2.

См смежный вопрос здесь: Any alternative to jQuery change() to detect when user selects new file via dialog box in IE8?

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

Смежные вопросы