Jquery 更新数据时增量弹出警报
我有一个动态按钮来编辑对象的一些数据。现在,一旦数据更新成功,我将向用户发送一个警报,说明它已成功完成 但是,当用户第二次编辑同一对象时,它会两次抛出相同的警报。同样,当同一对象第三次更新时,会更新三次,以此类推 我相信,我需要解除动态按钮上单击事件的绑定以修复此问题,并确保每次编辑对象时仅弹出一次警报 此外,请注意,默认情况下,工具名称和工具url不是选项字段,但如果填写了工具名称和工具url中的任何一个,则必须填写 如何在下面的代码中解除“.edit btn”按钮上单击事件的绑定Jquery 更新数据时增量弹出警报,jquery,object,dynamic,bootstrap-modal,unbind,Jquery,Object,Dynamic,Bootstrap Modal,Unbind,我有一个动态按钮来编辑对象的一些数据。现在,一旦数据更新成功,我将向用户发送一个警报,说明它已成功完成 但是,当用户第二次编辑同一对象时,它会两次抛出相同的警报。同样,当同一对象第三次更新时,会更新三次,以此类推 我相信,我需要解除动态按钮上单击事件的绑定以修复此问题,并确保每次编辑对象时仅弹出一次警报 此外,请注意,默认情况下,工具名称和工具url不是选项字段,但如果填写了工具名称和工具url中的任何一个,则必须填写 如何在下面的代码中解除“.edit btn”按钮上单击事件的绑定 var
var myData=[{
公司:“ABC”,
网址:“www.abc.com”,
类型:“内部”
}, {
公司名称:“CDE”,
网址:“www.cde.com”,
类型:“内部”
}, {
公司:“DEF”,
网址:“www.def.com”,
toolName:“reportTool”,
工具URL:“http://www.toolURL.com",
类型:“外部”
}, {
公司名称:“EFG”,
网址:“www.efg.com”,
类型:“内部”
}, {
公司:“FGH”,
网址:“www.fgh.com”,
类型:“外部”
}];
$('#createData')。单击(函数(){
createDisplay();
});
函数createDisplay(){
$('.container').empty();
myData.forEach(函数(obj){
$('.container')。追加(
$('').addClass('box').append(
$('').text('公司网站:'),
$('').addClass('compUrl').attr('href',obj.url).text(obj.company),
obj.type='external'?$('
').addClass('edit-btn').text('edit').attr({'data-toggle':'modal','data target':'#updateData'}):'
)
)
});
}
var objIndex;
$(文档)。在('单击','上。编辑btn',函数(){
objIndex=$(this.parents('.box').index();
var$toolName=$(“#newToolName”);
var$toolURL=$(“#newToolUrl”);
变量$toolInputs=$($toolName).add($toolURL);
$toolInputs.on('change',函数(e){
var toolName=$toolName.val();
var toolURL=$toolURL.val();
$toolInputs.prop('required',toolName | | toolURL);
});
$('#updateForm')。提交(函数(e){
var toolName=$toolName.val()
var toolURL=$toolURL.val()
var toolFilled=!!toolName&&!!toolURL;
var toolUnfilled=!toolName&&!toolURL;
如果(工具已填充| |工具未填充){
更新数据(objIndex);
返回false;
}
返回false;
});
});
函数更新数据(索引){
companyName=$('#companyName').val();
companyUrl=$('#companyUrl').val();
toolName=$('#newToolName').val();
toolURL=$('#newToolUrl').val();
var upObj={
公司名称:companyName,,
网址:companyUrl,
toolName:toolName,
toolURL:toolURL,
类型:“外部”
}
拼接(索引1,upObj);
log(myData[index]);
createDisplay();
警报(“数据更新成功!”);
}
.box{
高度:100px;
背景色:天蓝色;
边框:1px纯黑;
边缘顶部:5px;
}
创建div
&时代;
接近
更新数据
公司名称
网站
工具名称
工具URL
接近
保存更改
您可以为以下类解除单击事件的绑定:
$(document).off('click', '.edit-btn');
它将
解除绑定与'一起附加的上一个事件侦听器。编辑btn'
您可以解除类的单击事件绑定,如:
$(document).off('click', '.edit-btn');
它将解除绑定与一起附加的上一个事件侦听器。编辑btn'
删除。编辑btn
单击事件,其中包含更改事件和提交事件,因此每次单击时事件都会绑定。编辑btn
var myData=[{
公司:“ABC”,
网址:“www.abc.com”,
类型:“内部”
}, {
公司名称:“CDE”,
网址:“www.cde.com”,
类型:“内部”
}, {
公司:“DEF”,
网址:“www.def.com”,
toolName:“reportTool”,
工具URL:“http://www.toolURL.com",
类型:“外部”
}, {
公司名称:“EFG”,
网址:“www.efg.com”,
类型:“内部”
}, {
公司:“FGH”,
网址:“www.fgh.com”,
类型:“外部”
}];
$('#createData')。单击(函数(){
createDisplay();
});
函数createDisplay(){
$('.container').empty();
myData.forEach(函数(obj){
$('.container')。追加(
$('').addClass('box').append(
$('').text('公司网站:'),
$('').addClass('compUrl').attr('href',obj.url).text(obj.company),
obj.type==“外部”?$(“
”).addClass('edit-btn').text('edit').attr({
“数据切换”:“模式”,
“数据目标”:“更新数据”
}) : ''
)
)
});
}
objIndex=$(this.parents('.box').index();
var$toolName=$(“#newToolName”);
var$toolURL=$(“#newToolUrl”);
变量$toolInputs=$($toolName).add($toolURL);
$toolInputs.on('change',函数(e){
var toolName=$toolName.val();
var toolURL=$toolURL.val();
$toolInputs.prop('required',toolName | | toolURL);
});
$('#updateForm')。提交(函数(e){
var toolName=$toolName.val()
var toolURL=$toolURL.val()
var toolFilled=!!toolName&&!!toolURL;
var toolUnfilled=!toolName&&!toolURL;
如果(工具已填充| |工具未填充){
更新数据(objIndex);
返回false;
}
返回false;
});
函数更新数据(索引){
companyName=$('#companyName').val();
companyUrl=$('#companyUrl').val();
toolName=$('#newToolName').val();
toolURL=$('#newToolUrl').val();
var upObj={
公司名称:companyName,,
网址:companyUrl,
toolName:toolName,
toolURL:toolURL,
类型:“外部”
}
拼接(索引1,upObj);
log(myData[index]);
createDisplay();
警报(“数据更新成功!”);
}
.box{
高度:100px;
背景色:天蓝色;
边框:1px纯黑;
页边空白: