背景画像を更新するためのこのjquery関数があります。
var jq = $.noConflict(); jq(ドキュメント).レディ(関数() {
jq('#s22').click(function() {
d = new Date();
var tableframe3 = jQuery("div .rs4",window.parent.preview.document);
tableframe3.css("backgroundimage","url(images/bg.png?"+d.getTime());
});
});
それは機能しますが、ajax.updater を使用するフォームに追加すると、フォームを初めて送信したときにのみトリガーされます。再び機能させるには、ページ全体をリロードする必要があります。フォームを送信するために使用するコードは次のとおりです。
<form action="<?=$_SERVER['REDIRECT_URL'] ?>" method="POST"
onsubmit="try{
showStatus('working...');$(this).request({
sender:$(this).identify(),
onSuccess :function(transport){
try{
new Ajax.Updater($($('<?=$function ?>_container').parentNode),'Sites/<?=$function ?>/<?=$item[$this->mainModel->primaryKey] ?>/<?=$index ?>?ajax=true',{evalScripts:true}); showStatus('Complete!',2000);
}catch(e){
showStatus(e.toString(),4000);
}
}
})}catch(e){showStatus(e.toString(),4000)};return false;">
これが送信ボタンです:)
<input type="submit" id="s22" value="Select" />
問題がこの Ajax.Updater にあることはわかっています。コメントアウトすると、ページをリロードしなくても jquery が送信ごとに機能するためです。
new Ajax.Updater($($('<?=$function ?>_container').parentNode),'Sites/<?=$function ?>/<?=$item[$this->mainModel->primaryKey] ?>/<?=$index ?>?ajax=true',{evalScripts:true}); showStatus('Complete!',2000);
私はJavaScriptの初心者なので、何が問題なのかわかりません。