0

ユーザーが自分のアカウント情報を更新するために使用できるフォームを含むポップアップ div を含む単一ページのマークアップがあります。フォームの送信後、ポップアップが閉じ、ページが更新され、li 内にある更新された情報が表示されます (これは機能しているようです)。問題は、ユーザーが戻って再度更新しようとすると、ポップアップ内のボタンが送信されないことです。

提案を事前にありがとう!!!

Javascript

$('#updateadmin').click(function() {
var admin = $('#adminform').serializeArray();
/*alert(admin);*/
$.ajax({
type: "POST",
url: 'adminupdate.php',
data: admin,
success: function(data) {
            if(data=="success") {
                $('#admindiv').popup('close');
                $.mobile.changePage('companyinfo.php', { 
                    allowSamePageTransition: true,
                    transition: 'none',
                    reloadPage: true,
                    changeHash: false
                });
            } else {
                $('#adminupdatestatus').html(data).css({color: "red"}).fadeIn(1000);
            }
         }
});
return false;
});
4

1 に答える 1

5

リンク/ボタンがリロードされるページに配置されているよう#updateadminに思えます。この場合は、コードの実行時だけでなく、常に DOM 内の一致する要素に影響を与えるように、イベント ハンドラーをデリゲートする必要があります。

これを次のように変更します。

$('#updateadmin').click(function() {

これに:

$(document).on("click", "#updateadmin", function() {

documentこれは、常に存在する要素にイベント ハンドラーをアタッチしているためです。イベントが要素に到達するdocumentと、最初に発生した要素が の 2 番目の引数として配置したセレクターと一致するかどうかがチェックされます.on()

ドキュメント.on(): http://api.jquery.com/on

于 2012-12-11T22:33:12.527 に答える