0

我发现这个问题和答案是关于 $.validator.unobtrusive.parse

当我使用远程调用或 jQuery 远程加载部分/内容时,jquery ujs 不起作用

看起来这是我需要做的,以使 jquery 在已使用 ajax 加载的页面的某些部分上工作。

但我想知道它在做什么!它是调用rails ujs,还是直接与jquery交谈?我搜索了 rails ujs git hub 站点和 jquery 文档,但在这两个地方都看不到任何东西。有任何文件吗?

谢谢你的帮助。


也许这更清楚:

当我使用 create.js.erb 或 update.js.erb 添加或更改页面的一部分时,如何让 jquery 在页面的这些部分上工作。我正在尝试使元素再次可排序,这个问题是关于最佳就地编辑的,还有其他几个问题,上面的链接似乎是唯一的答案,我无法做到这一点。

那么,如何让 jquery “查看”页面的某些部分,而这些部分已经使用 rails ujs 进行了更改。

4

1 回答 1

2

这在很大程度上取决于您要“重新工作”的页面元素类型,以及原始“工作”的触发方式。

如果原始 jquery 代码简单地通过以下方式触发:

$(document).ready(function(){
  $('#mydiv").css('color','red');
});

并且您想在 update.js.erb 更改其内容后重置 div 的颜色(我知道,愚蠢的示例),您可以创建一个自定义事件并将其绑定到 div:

$(document).ready(function(){
  $('#mydiv").on('rework', function() {
    $(this).css('color','red');
  });
});

然后,在 update.js.erb 的最后一行,你可以这样做:

$('#mydiv').trigger('rework');

如果原始工作是通过 on change 事件或 click 事件等触发的,那么您可以触发该事件:

$('#mydiv').trigger('click');

触发事件很棘手,因为触发的事件与实际事件并不完全相同,而且事件通常很棘手。

如果它是一个简单的一行或几行代码,它可能就像在 update.js.erb 末尾添加重复代码一样简单。

于 2012-04-15T19:57:11.367 回答