這裏太早是我的問題的一個簡化版本:更改事件觸發的選擇框
的HTML:
<select id="mySelect">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
jQuery的:
$('#mySelect').change(function() {
// do stuff
});
問題是當我將鼠標光標移動到選項上時,do stuff
發生在我將光標懸停在其中一個選項上時,在我實際選擇新選項之前。我該如何避免這種行爲,以便.change()
只有在選擇完成後選擇新選項時纔會觸發?
編輯1:進一步信息
顯然,這代碼不會導致行爲描述。在實際的代碼中,當更多數據通過.get()
加載並處理時,選擇框正在更新。
編輯2:實際功能更新一個選擇框
此功能是一個在我的代碼更多的數據加載後,更新的選擇框之一。全局變量padm_courses
是一個課程對象數組,它具有用於填充課程過濾器選擇框的code
和name
屬性。
function loadCourseFilter() {
var selected = '';
var sel = $('<select>').attr('id','padmCourseFilter');
$(padm_courses).each(function() {
sel.append($("<option>").attr('value',this.code).text(this.name));
});
if($('#padmCourseFilter').length) {
selected = $('#padmCourseFilter').val();
$('#padmCourseFilter').replaceWith(sel);
if(selected != '') $('#padmCourseFilter option[value="'+escape(selected)+'"]').prop('selected', true);
} else {
sel.appendTo('#padm_hub_filters');
}
$('#padmCourseFilter').change(function() {
processMCRsByCourse($('#padmCourseFilter').val());
var tables = $('.sv-datatable').DataTable();
tables.rows('.duplicate').remove().draw();
filterTheBlockFilter();
});
}
要麼使用'$(「#\\#mySelect」)'或'id =「mySelect」' – Satpal
是的,對不起,這是我的問題示例代碼中的錯字,而不是我的實際代碼。我編輯它並修復。 – AntonChanning
'當我將鼠標懸停在其中一個選項上時會發生什麼情況'您顯示的代碼中沒有任何內容會導致該行爲。您能否展示更完整的問題示例 –