2010-10-26 69 views
0

我有组合框(事实上,其中几个),动态添加元素。jQuery - 如何在combobox上实现live()?

使用jQuery,我不知道如何实现函数将返回我在组合所选项目的ID ...

我知道,它有使用.live东西(是),像

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

...但我不知道如何在这里实现它。

tnx in adv!

回答

1

您正在寻找这样的事情?

$(".foo").live("change", function() { 
    $(this).val(); // value of the changed item 
}); 
1

使用上的选择元素的子元素(又名选项)的:selected选择

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

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

1
$(".foo").live("change", function() { 
    alert($(this).attr("id")); // Id of the element 
}); 
+0

我想这就是答案,如果他想选择的id但我认为如果你仔细阅读,他正在寻找所选选项的价值 – hunter 2010-10-26 18:21:51

1

您可以使用$(this).val()找到触发事件的元素的值。

看来别人已经打败了我。我和@John和@Daniel一样。

这里是一个jsfiddle来测试它jsfiddle

需要注意的一件事是,live不支持所有浏览器中的change方法(如IE 6到8)。解决此

一种方法是使用委托方法,我已经证明here

它看起来是这样的:

$(parentElement).delegate(selector, 'change', function() { 
    //do something interesting here 
    //$(this).val() still works. 
});