我在 rails 3.2 应用程序中使用 best_in_place 2.1.0。
我有一组最佳位置字段,它们的值相互依赖。
因为修改一个会更改所有这些的值,所以当从其中任何一个发送 AJAX 请求时,我需要禁用所有这些的编辑。
如果您注意到,最好就地在等待 AJAX 请求完成时已经禁用了一个字段。我只是想扩展它,以便它禁用所有这些。
我尝试覆盖 onclick
$('.best_in_place').bind("onclick", function(e){
e.stopPropogation();
e.cancelBubble();
return false;
});
但这没有用。有时它似乎在创建最佳现场字段之前被调用,但其他时候它似乎发生在之后。无论哪种方式,它对我都不起作用。
我也想过使用
"best_in_place:activate"
jQuery 触发器,但在 this.activateForm()
之后调用在 BestInPlaceEditor.prototype{.. activate: }
所以这是行不通的。我真的不知道该怎么做。任何可以动态禁用所有或选择的最佳现场字段的东西都适合我。
最佳答案
如果有人仍在为此寻找解决方案,我会向元素添加一个类,并通过 css 取消事件:
在js中:
$('.best-in-place.parent-setting').on("ajax:success", function(e, t) {
var enable = $(this).data('bip-value');
var childrenSettings = $(this).data('children-setting');
$('.best-in-place.'+childrenSettings).toggleClass('disabled', !enable);
});
在CSS中:
.best-in-place.disabled{
opacity: .5;
pointer-events: none;
}
关于ruby-on-rails - 在 AJAX 请求期间使用 js 禁用所有 best_in_place 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18004322/