如果我选择所选的选项文字" A" change()函数不起作用。但是如果我选择其他一些像B,C那么它的工作正常,之后如果我选择它的A工作很好。为什么它不能在开始工作。是否有可能触发该功能。请帮忙
$('#type').change(function() {
var val = $('#type option:selected ').val();
alert(val);
})
$(function() {
$('#type').val('1');
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="type">
<option >--Select--</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
&#13;
答案 0 :(得分:1)
一种可能的选择是跟踪选择是否已打开,如果有人也点击它,则调用函数
此外,您将当前值保存在属性中,然后在mouseup
事件中进行比较(如果它们相同),如果您手动触发change
事件,则为{{1因为用户单击了相同的选项,所以事件不会自动触发。
change
$(document).ready(function() {
var isOpen = false;
// Init any selection
$('#type').attr('data-val', $('#type').val());
$('#type').change(function() {
selectWasClicked($(this).val());
})
$('#type').mouseup(function() {
if (!(isOpen)) {
isOpen = true;
return;
}
isOpen = false;
if ($(this).attr('data-val') == $(this).val()) {
$(this).trigger("change");
}
$(this).attr('data-val', $(this).val());
})
$('#type').blur(function() {
isOpen = false;
})
function selectWasClicked(val) {
console.log('someone clicked on the select value: ', val);
}
});