Chrome中select / options的jQuery事件委派

我正在尝试将简单的单击事件绑定到下拉列表的选定选项。

$('select#myselect').delegate(':selected', 'click', function() { alert('selected'); }); 

此代码适用于Firefox,但不适用于Chrome / Safari。 我可以使用.delegate()为这样的下拉菜单绑定一个选项吗? 如果是这样,怎么样? 如果没有,最好的替代解决方案是什么?

顺便说一句, jQuery点击事件..使用.change()提供了一个潜在的解决方案,但我想尽可能使用.delegate()管理所有绑定。

click事件不会触发这些浏览器中的元素,但无论您的选项是否发生变化,它都没有什么不同:

 $('#myselect').change(function() { alert('selected, my new value is: ' + $(this).val()); }); 

归结为此,这里不需要.delegate().delegate()用于监听从元素本身不会去任何地方(例如通过AJAX替换)的可能更改或非常多的后代元素冒出的事件。 .live()以非常类似的方式工作,它只是在document上一直监听。

除了这个之外,我不知道更好的解释方法:你当前的用法根本不是.delegate()的用途,它旨在解决不同的问题。 你应该在这里使用.change()