Javascript 如何避免在Jquery中选择项时更改事件?
我正在创建选择以从DB中选择数据,但为选择器设置ID=myselect 但是,如果我选择了一个项目并更改为另一个项目,当用户单击它的项目时,我只想调用ajax一次,这个ajax就会调用Javascript 如何避免在Jquery中选择项时更改事件?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在创建选择以从DB中选择数据,但为选择器设置ID=myselect 但是,如果我选择了一个项目并更改为另一个项目,当用户单击它的项目时,我只想调用ajax一次,这个ajax就会调用 $(document).on("click", "#myselect", function (e) { $.ajax({ url: '/teller/assignTo', dataType: 'json', Method: 'get', s
$(document).on("click", "#myselect", function (e) {
$.ajax({
url: '/teller/assignTo',
dataType: 'json',
Method: 'get',
success: function (data, status) {
var userId = data.users;
$.each(userId, function (key, value) {
$('#myselect').append($("<option></option>").attr("value", key).text(value.name));
});
},
error: function () {
throw new Error("Could not load " + data);
}
});
});
HTML
试试这个
HTML
JQuery
$(document).on("click", "#myselect", function (e) {
if( $(this).hasClass( "not-clicked" ) ) {
$.ajax({
url: '/teller/assignTo',
dataType: 'json',
Method: 'get',
success: function (data, status) {
var userId = data.users;
$.each(userId, function (key, value) {
$('#myselect').append($("<option></option>").attr("value", key).text(value.name));
});
},
error: function () {
throw new Error("Could not load " + data);
}
});
$(this).removeClass("not-clicked");
}
});
您可以使用$document.one代替$document.on。。将只执行一次$document.onchange、myselect和函数e{//使用change event而不是clickIt无法工作,因为我第一次在选择中有一个值。@anshu,如果您使用了一个值,并且如果第一次加载失败,它将无法选择。哦,我从另一个jquery追加了这个选择,所以我必须使用$document.on;如果我使用$selector.on它将无法工作如果ajax加载失败,我必须插入check再次使用d类,对吗?这对性能有好处,或者不只是在成功功能中移动“$this.removeClassnot clicked;”。当我在ajax中更改已删除的类时,它无法删除该类
<select name="assign_user_id" id="myselect" class="form-control not-clicked" ></select>
$(document).on("click", "#myselect", function (e) {
if( $(this).hasClass( "not-clicked" ) ) {
$.ajax({
url: '/teller/assignTo',
dataType: 'json',
Method: 'get',
success: function (data, status) {
var userId = data.users;
$.each(userId, function (key, value) {
$('#myselect').append($("<option></option>").attr("value", key).text(value.name));
});
},
error: function () {
throw new Error("Could not load " + data);
}
});
$(this).removeClass("not-clicked");
}
});