我为此功能加载外部页面。从DIV id。抓取页面URL。
$(".contentArea").load($('.contentArea').attr('id'), function(){
加载页面,得到一个数据表,所以我把它添加到回调中。
$('.datatable').dataTable( {
在数据表中,我有一个编辑器按钮,所以我使用数据表回调函数调用编辑器而不刷新页面:
"fnDrawCallback": function(){
$(".contentEditor").click(function() {
$(".contentArea").load($('.contentEditor').attr('id'), function(){
在这个范围内,内容编辑器的加载方式与我用来加载包含数据表的页面的方式相同。 (页面URL在按钮ID上传递)。
我现在卡住了。在这个编辑器上,我需要提交表单,我希望它使用jquery加载提交,这样页面不会刷新,提交表单后,我想将冲浪者发送回数据表页面(当时首次加载的页面)页面已加载)。我将执行更新已编辑内容所需的操作。有帮助吗?感谢。
我使用数据服务器端ajax加载。这就是我使用回调的原因。
$(".contentArea").load($('.contentArea').attr('id'), function(){
$('.datatable').dataTable( {
"bJQueryUI": true,
"sScrollX": "",
"bSortClasses": false,
"aaSorting": [[0,'asc']],
"bAutoWidth": true,
"bInfo": true,
"sScrollY": "100%",
"sScrollX": "100%",
"bScrollCollapse": true,
"sPaginationType": "full_numbers",
"bRetrieve": true,
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": $('.datatable').attr('id'),
"fnDrawCallback": function(){
$(".contentEditor").click(function() {
$(".contentArea").load($('.contentEditor').attr('id'), function(){
$( "select, input:checkbox, input:radio, input:file").uniform(),
$( ".datepicker" ).datepicker({dateFormat: 'yy-mm-dd' }),
$("#validation").validationEngine(),
$('input[title]').tipsy(),
$('textarea.tinymce').tinymce({
// Location of TinyMCE script
script_url : '../scripts/tinyeditor/tiny_mce.js',
// General options
theme : "advanced",
plugins : "table,advhr,advimage,advlink,inlinepopups,preview,media,paste,fullscreen,visualchars,xhtmlxtras",
// Theme options
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,blockquote,|,forecolor,backcolor",
theme_advanced_buttons2 : "formatselect,fontselect,fontsizeselect,|,removeformat,|,hr,|,undo,redo,|,sub,sup,|,charmap,|,cite",
theme_advanced_buttons3 : "tablecontrols,|,link,unlink,anchor,|,image,preview,media,|,cleanup,code,fullscreen",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true
});
});
});
}});
});
答案 0 :(得分:1)
要提交表单,请使用$.post()
和$(form).serialize()
。然后,在$.post()
的成功处理程序中,再次使用.load()
。
$.post(url, $("#myForm").serialize(), function(data) {
$(".contentArea").load(...);
});
或者,如果从提交表单返回的内容是您要在.contentArea
中显示的html,则可以通过使用{{1}中返回的html来节省额外的.load()
调用。 }}:
.contentArea
编辑:创建处理不同任务的函数。顺便说一句,不要使用$.post(url, $("#myForm").serialize(), function(data) {
$(".contentArea").html(data);
});
来存储网址。创建自定义属性...也许id
。
contentUrl
我已将其分解为可能过多的单个函数,但关键是不要过度使用匿名函数,尤其是当您想要重用函数时。