Событие click
не запускается для элементов <option>
в этих браузерах, но независимо от того, изменяются ваши параметры или нет, с этим ничего не меняется:
$('#myselect').change(function() {
alert('selected, my new value is: ' + $(this).val());
});
Это сводится к тому, что здесь нет необходимости .delegate()
. .delegate()
используется для прослушивания событий, которые всплывают от дочерних элементов, которые могут измениться или быть очень многочисленными, когда сам элемент никуда не денется (например, заменить через AJAX). .live()
работает очень похожим образом, он просто слушает все время до document
.
Я не знаю лучшего способа объяснить это, кроме этого: ваше текущее использование совсем не то, для чего .delegate()
, оно предназначено для решения другой проблемы. Вы должны использовать .change()
здесь.