事件虽然注册了一次,但会触发多次
Event though registered once, event is fired more than one time
我定义$('#userUVEdit-modal').on('click'
事件如下。它已在另一个单击事件中注册。但我不明白为什么它被炒了不止一次。
$('#usersTable').on('click','.uv-user-edit-btn', function (event) {
event.preventDefault();
var rowData = getJqGridRowData($(this).closest('tr'));
var selectedUserID = $(rowData.userId).find('.uv-user-edit-btn').attr('value');
var isInstanceAlreadyAssigned = $(rowData.instanceName).attr('id');
if(isInstanceAlreadyAssigned && typeof isInstanceAlreadyAssigned != undefined) {
instanceId = isInstanceAlreadyAssigned;
}else {
instanceId = -1;
}
$('#edit-uv-username').val($(rowData.username).html());
var requests_interface = new requests_interface_instance.getAllInstances();
requests_interface.init(requests_callback_instance.getAllInstancesCallBack);
requests_interface.execute();
// THE FOLLOWING FUNCTION IS FIRED MORE THAN ONCE
$('#userUVEdit-modal').on('click','#userUVEditButton', function(event) {
event.preventDefault();
var result = validateRequiredFields('#userUVEdit-modal');
if(result['status']) {
var dataObj = createFormObject('#userUVEdit-modal');
dataObj['user_id'] = selectedUserID;
dataObj['instanceId'] = instanceId; // Tells the previous instance allotted
var requests_interface = new requests_interface_instance.mapUserToInstance();
requests_interface.dataObj = dataObj;
requests_interface.init(requests_callback_instance.mapUserToInstanceCallBack);
requests_interface.execute();
}
});
});
单击#userUVEditButton
时,$('#userUVEdit-modal').on('click','#userUVEditButton', function(event) {
将被激发,但它会被激发多次。这可能是什么原因?
我认为这是因为每次单击.uv-user-edit-btn
时,都会在#userUVEditButton
上绑定单击事件。Try-off()函数,它将删除事件处理程序,然后on()将在元素上添加事件处理程序。
示例:
$('#userUVEdit-modal').off().on('click','#userUVEditButton', ...
如果你不想移动内部点击处理程序,一个简单的解决方法:
$('#userUVEdit-modal').off('click').on('click' ...
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 事件虽然注册了一次,但会触发多次
- 只显示一次用户注册屏幕
- Firebase注册一次,登录不同的应用程序
- Javascript keydown函数没有一次注册两个键
- 为多个控件注册一次事件处理程序-是否可能
- 为什么jquery只注册一次点击?