我有一个概念性的DOM问题-我希望它是有意义的。
我的页面(叫它'Main')有prototypeJS AJAX更新它,我选择一个记录编辑,并调用'页B'(部分)到'Main'页面上的div。
当我点击部分中的表单时,它调用'Main'上的函数-然而,Updater是"应该"更新部分上的div…但它从来没有。我很确定DOM找不到它,因为它被渲染或带入Main…
如何解决这个问题??
主要<script>
// pulls page B into Main div
function getItem( id ) {
var url = 'itemDetails.php';
var pars = { id:id };
var myAjaxOpts = new Ajax.Updater( 'itemDetail', url, {
method:'post'
,parameters:pars
,evalScripts:true
});
}
// post form and expects messages in 2 places (1) the upated div (on page B) and the message div on Main
// Only main showing up
function assignItem( frm ) {
var url = 'assignItem.php';
var pars = Form.serialize( frm );
var myAjaxOpts = new Ajax.Updater( 'subMessage', url, {
method:'post'
,parameters:pars
,evalScripts:true
,onSuccess: function( response ){
//console.log( 'request ready to be made' );
$( 'mainMessage' ).update( response );
}
});
}
</script>
<!-- page A - Main -->
<div id="mainMessage"></div>
<ul>
<li><a onClick="getItem( 1 );">item 1</a></li>
<li><a onClick="getItem( 2 );">item 2</a></li>
<li><a onClick="getItem( 3 );">item 3</a></li>
</ul>
<div id="itemDetail"></div>
<!-- end page A -->
页B(部分)
<!-- page B - Partial -->
<div id="subMessage"></div>
<form>
-- edit record ---
<input type="button" onClick="assignItem( this.form );" ></form>
<!-- end page B -->
BTW -应该注意的是,这是一个"减少"的样本(可能有错别字),我得到的数据如预期的那样,没有AJAX的问题,这只是部分的div似乎不能用于Main上的函数。
Thx
只需更改更新的id。
change this: $( 'mainMessage' ).update( response );
by: $( 'subMessage' ).update( response );