【发布时间】:2010-12-10 17:29:12
【问题描述】:
我想在加载某个类的表单元素(特别是隐藏字段)时调用一个函数。这个:
$('.has_other').ready(function(){
alert($(this).value);
});
在初始页面加载时工作正常,但是当我重新加载包含具有“has_other”类元素的表单部分时(用于使用相同表单编辑元素),该事件不会再次被调用。 jQuery 中有没有一种方法可以在所有加载隐藏字段时调用此函数,包括重新加载/加载现有页面中的部分内容?
提前致谢!
编辑:我在我的控制器中呈现这样的部分:
page.replace_html 'secondary_publication_entry', :partial => 'publications/form'
编辑2:这里是更具体的代码:
$j('.has_other_hidden').live('ready', function(){
alert($j(this).value);
});
也试过
$j('.has_other_hidden').ready(function(){
alert($j(this).value);
});
和
$j('.has_other_hidden :hidden').live('ready', function(){
alert($j(this).value);
});
其中唯一会导致任何警报的是 .ready(),它不会在部分加载/重新加载时导致警报,这是我希望发生的。
我想我可以在重新加载每个部分时再次调用一个调用 ready() 的函数 - 不过我不确定如何执行此操作(从 rails 控制器调用 jquery 函数)。
感谢您的回答!
编辑 3: 我试过 live('load',...) 和 live('ready',...)。在这里都不工作:(
【问题讨论】:
-
我不确定,但您是否尝试将代码放在部分代码中?每次新的部分加载时都应该调用它
-
我不确定如何从我加载部分的 Rails 控制器调用 jQuery 函数...帮助?
-
不,不是来自控制器,只是将你的 js 代码放在 partial 我从来没有使用过原型,但如果是 jquery.get,你可以将你的 js 代码放在 action.js.erb 中,所以如果你将您的代码放在部分中并从控制器渲染部分代码将被执行并且新对象(已添加部分)也将被更新
标签: javascript jquery ruby-on-rails ruby-on-rails-3