javascript - 如何从当前X-Editable的成功功能触发打开一个新的X-Editable?

标签 javascript jquery twitter-bootstrap x-editable

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

因此可编辑年份的可编辑选项如下:

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

<强> EXAMPLE FIDDLE HERE

除 2014 年外,该行为表现良好,其中它确实将正确的值发布到后端,随后确实单击/打开 #tax_rate,但不知何故,该单击阻止了新年在 #year 中正确显示。如果我刷新页面,年份会再次正确显示,但只是当我尝试触发其他可编辑时,它在保存后不会正确显示年份。只需尝试打开 the fiddle并将年份更改为 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);
        }
    }
});

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

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

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

关于javascript - 如何从当前X-Editable的成功功能触发打开一个新的X-Editable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26973068/

相关文章:

javascript - 如何在 javascript 中按空格和特殊字符拆分字符串?

jQuery e.preventdefault 也适用于 child 撒谎

javascript - 如何禁用 jquery 移动弹出窗口的关闭

javascript - Bootstrap 轮播内容淡入淡出

css - 具有 block 级别的 Bootstrap 下拉按钮?

javascript - 如何将 JSON 对象转换为 JavaScript 对象

javascript - 如何将运动剪辑到边界框?

javascript - 如何更新 Instagram token 以增加 api 限制

php - 使用ajax提交表单后获取表单值(mysql_insert_id)

html - 用内容扩展 bootstrap div 宽度