Javascript 如何从当前X-Editable的成功功能触发打开新的X-Editable?
我使用的是允许人们在线编辑他们的个人资料。但是,用户可以编辑的内容之一会影响另一个可编辑的内容。如果“可编辑A年度”设置为当前年度,则用户有义务在“可编辑B年度”中决定某一税率 因此,可编辑年份的可编辑选项如下:Javascript 如何从当前X-Editable的成功功能触发打开新的X-Editable?,javascript,jquery,twitter-bootstrap,x-editable,Javascript,Jquery,Twitter Bootstrap,X Editable,我使用的是允许人们在线编辑他们的个人资料。但是,用户可以编辑的内容之一会影响另一个可编辑的内容。如果“可编辑A年度”设置为当前年度,则用户有义务在“可编辑B年度”中决定某一税率 因此,可编辑年份的可编辑选项如下: $('#year').editable({ pk: 1, success: function(response, newValue){ if (newValue == 2014){ $('#tax_rate').trigger('
$('#year').editable({
pk: 1,
success: function(response, newValue){
if (newValue == 2014){
$('#tax_rate').trigger('click');
} else {
$('#tax_rate').html(2);
}
}
});
除了2014年,它的行为正常,在2014年,它确实会将正确的值发布到后端,随后确实会单击/打开tax_rate,但不知何故,单击会阻止在2014年中正确显示新的一年。如果我刷新页面,年份会再次正确显示,但就在我尝试触发其他可编辑的页面时,它在保存年份后不会正确显示年份。试着把今年开到2014年,看看我的意思
那么,有人知道我如何在DOM中更新新年,并单击/打开可编辑的税率吗?欢迎所有提示 我建议您使用异步UI交互: 像这样:
$('#year').editable({
pk: 1,
success: function(response, newValue){
if (newValue == 2014){
setTimeout(function(){
$('#tax_rate').trigger('click');
}, 0);
} else {
$('#tax_rate').html(2);
}
}
});
我认为它应该能正常工作
加:
还可以使用触发单击事件vanillaJS框架。
我认为$.trigger导致某些UI更新错误。
很简单:
document.getElementById('tax_rate')
.dispatchEvent(new Event('click'));
你需要一些额外的信息吗?我添加了另一种方法来解决这个问题。太棒了,这确实有效!虽然现在问题已经解决了,但您是否知道为什么X-Editable会有这样的行为?这似乎是一个魔术:我认为这里的实现很差。类似于通过硬编码超时更新不可见元素。