grails ajax 调用需要在每个模板中重新加载 jquery 代码
grails ajax call needs to reload jquery code in each template
我正在使用 grails 2.4 并且 AJAX 使用 formremote、remotelink、submittoremote 等进行请求
当我ajax调用和渲染模板时,我需要重新编写相关的jquery。
喜欢
$('.customdatepicker').datepicker({
format: "dd/mm/yyyy",
autoclose:true,todayHighlight: true
});
所有模板中的重复代码,
我需要一些东西,这样我只需要编写一次 jquery 代码。
如果我在布局中定义它,那么它仅适用于所有非 ajax 调用。
谢谢。
您应该考虑以下几点:
当您使用 ajax 加载内容时,使用它创建的元素不会
自动拥有其他所有绑定和事件
在页面加载时创建的元素有。如果你需要你的元素有
ajax 之后的某种行为,那么你应该创建函数
您可以调用表单远程标记的 onSuccess
。
您可以使用普通形式并使用 jquery 的 on
函数作为
$('#my-element-in-page-when-loaded').on('click', 'my-ajax-element', function(){ /*jquery ajax functions load, get, post, ajax*/})
而不是
$('my-ajax-element').click();
因为后者只有在页面初始加载时存在 my-ajax- 元素时才有效。
如果问题是您的 javascript 加载顺序不正确,那么您应该在模板中编写如下代码
<content tag="javascript">
//your js
</content>
和以下布局代码,在您声明资源或资产的位置之后 javascripts。
//your layout assets
<g:pageProperty name="page.javascript"/>
通过这种方式,您将能够在文件中声明一个包含所有常用功能的文件,然后在
中声明所有视图特定的js
<content tag="javascript">
//your view specific code.
</content>
我正在使用 grails 2.4 并且 AJAX 使用 formremote、remotelink、submittoremote 等进行请求
当我ajax调用和渲染模板时,我需要重新编写相关的jquery。
喜欢
$('.customdatepicker').datepicker({
format: "dd/mm/yyyy",
autoclose:true,todayHighlight: true
});
所有模板中的重复代码, 我需要一些东西,这样我只需要编写一次 jquery 代码。
如果我在布局中定义它,那么它仅适用于所有非 ajax 调用。
谢谢。
您应该考虑以下几点:
当您使用 ajax 加载内容时,使用它创建的元素不会
自动拥有其他所有绑定和事件
在页面加载时创建的元素有。如果你需要你的元素有
ajax 之后的某种行为,那么你应该创建函数
您可以调用表单远程标记的 onSuccess
。
您可以使用普通形式并使用 jquery 的 on
函数作为
$('#my-element-in-page-when-loaded').on('click', 'my-ajax-element', function(){ /*jquery ajax functions load, get, post, ajax*/})
而不是
$('my-ajax-element').click();
因为后者只有在页面初始加载时存在 my-ajax- 元素时才有效。
如果问题是您的 javascript 加载顺序不正确,那么您应该在模板中编写如下代码
<content tag="javascript">
//your js
</content>
和以下布局代码,在您声明资源或资产的位置之后 javascripts。
//your layout assets
<g:pageProperty name="page.javascript"/>
通过这种方式,您将能够在文件中声明一个包含所有常用功能的文件,然后在
中声明所有视图特定的js<content tag="javascript">
//your view specific code.
</content>