$.validator.unobtrusive.parse-rails 中的 jquery
Posted
技术标签:
【中文标题】$.validator.unobtrusive.parse-rails 中的 jquery【英文标题】:$.validator.unobtrusive.parse - jquery in rails 【发布时间】:2012-04-16 21:57:54 【问题描述】:我发现了这个关于 $.validator.unobtrusive.parse 的问题和答案
jquery ujs not functioning when I remotely load partials/content with remote calls or jQuery
看起来这是我需要做的,以使 jquery 在使用 ajax 加载的页面部分上工作。
但我想知道它在做什么!它是调用rails ujs,还是直接与jquery交谈?我搜索了 rails ujs git hub 站点和 jquery 文档,但在这两个地方都看不到任何东西。是否有任何文档?
感谢您的帮助。
也许这更清楚:
当我使用 create.js.erb 或 update.js.erb 添加或更改页面的一部分时,如何让 jquery 在页面的这些部分上工作。我正在尝试使元素再次可排序,this question 是关于最佳就地编辑,还有其他几个问题,上面的链接似乎是唯一的答案,我无法做到这一点。
那么你如何让 jquery “查看”你已经使用 rails ujs 更改过的页面部分。
【问题讨论】:
对不起,我不清楚你的问题,也许你最好给我们一个你的问题的例子。 【参考方案1】:这在很大程度上取决于您要“重新工作”的页面元素类型,以及原始“工作”的触发方式。
如果原始 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 末尾添加重复代码一样简单,如果它是一个简单的一行或几行代码。
【讨论】:
感谢您的意见 - 我可以玩很多!以上是关于$.validator.unobtrusive.parse-rails 中的 jquery的主要内容,如果未能解决你的问题,请参考以下文章