jQuery - как реализовать live () в выпадающем списке? - PullRequest
0 голосов
/ 26 октября 2010

У меня есть выпадающий список (на самом деле, несколько из них), с элементами, которые добавляются динамически.

с использованием jQuery, я не знаю, как реализовать функцию, которая будет возвращать идентификатор элемента, выбранного в комбо ...

Я знаю, что это должно быть что-то с помощью .live ()что-то вроде

$(".foo").live("change", function() {
do something;
});

... но я не знаю, как это реализовать здесь.

tnx в adv!

Ответы [ 4 ]

1 голос
/ 26 октября 2010

Вы можете использовать $(this).val(), чтобы найти значение элемента, который вызвал событие.

Кажется, другие побеждали меня в этом.Мой аналогичен @John и @ Daniel.

Вот jsfiddle, чтобы проверить его jsfiddle .

Одна вещь, которую нужно отметить, - то, что live не поддерживаетметод change во всех браузерах (например, IE 6–8).

Одним из способов решения этой проблемы является использование метода делегата, который я продемонстрировал здесь

Itбудет выглядеть примерно так:

$(parentElement).delegate(selector, 'change', function() {
    //do something interesting here
    //$(this).val() still works.
});
1 голос
/ 26 октября 2010

Вы ищете что-то подобное?

$(".foo").live("change", function() {
  $(this).val(); // value of the changed item
});
1 голос
/ 26 октября 2010
$(".foo").live("change", function() {
   alert($(this).attr("id")); // Id of the element
});
1 голос
/ 26 октября 2010

Используйте селектор :selected для дочерних элементов элемента select (например, опции)

$(".foo").live("change").function(){ 
    var val = $(".foo").find(":selected").val();
    // pass val to some other method for work
});

http://api.jquery.com/selected-selector/

...