我在表单上有一个select元素,当我单击它时,我需要它执行一些代码,而当我选择一个不执行代码的选项时。
下面的代码被执行了两次,所以我无法选择一个选项,代码会再次执行,并且我对自己选择的选项进行了重置。
HTML:
<select class="form-control" id="opportunity_id" name="opportunity_id">
<option value="">(Choose opportunity)</option>
</select>
JS:
$('#opportunity_id').on('click', function(ev) {
$.ajax({
url: "/opportunitylist/",
type: 'GET',
success: function(resOpportunities) {
var $select = $('#opportunity_id');
$select.find('option').remove();
var count = 0;
$select.append("<option value=''>(Choose opportunity)</option>");
$.each(eval(resOpportunities), function(key, value) {
$select.append('<option value=' + value[0] + '>' + value[1] + '</option>');
count = count+1;
});
}
});
});
我的问题,此代码有一些解决方法?每次单击select元素时,如何使此代码执行一次?
答案 0 :(得分:0)
专注解决
$('#opportunity_id').on('focus', function(ev) {
$.ajax({
url: "/opportunitylist/",
type: 'GET',
success: function(resOpportunities) {
var $select = $('#opportunity_id');
$select.find('option').remove();
var count = 0;
$select.append("<option value=''>(Choose opportunity)</option>");
$.each(eval(resOpportunities), function(key, value) {
$select.append('<option value=' + value[0] + '>' + value[1] + '</option>');
count = count+1;
});
}
});
});
答案 1 :(得分:0)
每当使用以下事件链触发事件时,您都可以尝试删除事件处理程序:
WHERE inSeries IN (‘90’,’91’,’92’,’93’,’94’)
所以对于您来说,它就像:
$('.selector')
.off('click', '.item')
.on('click', '.item', function() {
// code goes here
})