Chrome中的select/options的jQuery事件委派

jon*_*c12 0 jquery binding select delegates google-chrome

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

$('select#myselect').delegate(':selected', 'click', function()  
{  
    alert('selected');  
});
Run Code Online (Sandbox Code Playgroud)

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

顺便说一句,jQuery单击Event ..使用.change()提供了一个潜在的解决方案,但是如果可能的话,我想用.delegate()管理所有绑定.

Nic*_*ver 5

click事件不火<option>在这些浏览器的元素,但你的选择是否正在发生变化与否,它没有什么不同有:

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

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

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