如何触发一个新的 X-Editable 从当前功能的成功函数中打开

How to trigger a new X-Editable to open from the success function of the present one?

本文关键字:功能 成功 函数 X-Editable 何触发 一个      更新时间:2023-09-26

我正在使用Bootstrap X-editable让人们对他们的个人资料进行内联编辑。用户可以编辑的一件事,对另一个可编辑的内容有影响。如果可编辑 A(一年)设置为当前年份,则用户也有义务在可编辑 B(特定税率)中做出决定。

因此,可编辑year的可编辑选项如下:

$('#year').editable({
    pk: 1,
    success: function(response, newValue){
        if (newValue == 2014){
            $('#tax_rate').trigger('click');
        } else {
            $('#tax_rate').html(2);
        }
    }
});

示例小提琴在这里

除了 2014 年之外,这表现良好,其中它确实将正确的值发布到后端,随后确实单击/打开#tax_rate,但不知何故,单击阻止了新年正确显示#year。如果我刷新页面,年份会再次正确显示,但这只是当我尝试触发另一个可编辑对象时,它在保存后无法正确显示年份。试着打开小提琴,把年份改成2014年,看看我的意思。

那么有谁知道我如何在 DOM 中更新新的一年,也可以单击/打开可编辑tax_rate?欢迎所有提示!

我建议你异步UI交互:

喜欢这个:

$('#year').editable({
    pk: 1,
    success: function(response, newValue){
        if (newValue == 2014){
          setTimeout(function(){
             $('#tax_rate').trigger('click');
          }, 0); 
        } else {
            $('#tax_rate').html(2);
        }
    }
});

我认为它应该可以正常工作

添加
您也可以使用click框架vanillaJS触发事件。
我认为$.trigger导致一些UI更新错误。
很简单:

document.getElementById('tax_rate')
  .dispatchEvent(new Event('click'));