0

私は次のjqueryコードを持っています

function deleteAppointment(confirmationNumber)
{
//        alert(confirmationNumber);
     $('#left').simpledialog({
        'mode' : 'bool',
        'prompt' : 'Confirm Delete',
        'useModal': true,
        'buttons' : {
          'OK': {
            click:function () {
//                    alert(confirmationNumber);
                var link;       
                link = ROOT_URL+'Queue/cancelreservation/confirmnumber/'+confirmationNumber;        
                $.ajax({
                    url: link,
                    type: 'GET',
                    async: true,
                    success: function(data){
                        renderAgain();
                        addRightPane();
                        $(APPOINTMENT_LIST_CLASS).animate({
                            scrollTop: 0
                        });

                    },
                    error: function(){
                        /*@TODO : What if the ajax request fails */
                    }
                });
            }

          },
          'Cancel': {
            click: function () {
              $('#dialogoutput').text('Cancel');
            },
            icon: "delete",
            theme: "c"
          }
        }

    });             
}

問題は、予約の削除機能に渡した確認番号が初めて渡され、次回は更新されないことです。古い確認番号の値を保持しているので、クリック機能に確認番号を渡さなければならないことがわかりました。誰かがそれを行う方法について私を助けることができますか?または私がここで欠けているものは何ですか?

4

3 に答える 3

2

jquerymobileでの数週間の経験の後、この問題を修正するためのよりエレガントで正しい方法を見つけました

単純なダイアログのプロパティを使用するだけです

'cleanOnClose' : true

これで問題が解決します

于 2012-09-04T21:24:54.483 に答える
0

あなたの削除ボタンはこんな感じだと思います

<a class="deleteappoinment" href="javascript:void(0);" id="12">Delete</a> //here 12 is an example of conformation id, change it accordingly

$(document).ready(function(){
    $('.deleteappoinment').click(function(){

            deleteAppointment($(this).attr('id'));

      });
    });

function deleteAppointment(confirmationNumber){
 //code
}
于 2012-06-27T08:36:00.533 に答える
0

あなたがやったのと同じことをしたかった、単純なダイアログを補充する1つの関数ですが、問題はonclickをバインド解除して再度バインドする必要があるということですが、方法がわかりませんでした。回避策を作成してグローバル変数を使用しましたパラメータを渡すために

これはトリックを行う必要があります...誰かがイベントを再バインドする方法を知っている場合は、私たちに知らせてください

var selected;

 function deleteAppointment(confirmationNumber)
{
selected = confirmationNumber;
//        alert(confirmationNumber);
     $('#left').simpledialog({
        'mode' : 'bool',
        'prompt' : 'Confirm Delete',
        'useModal': true,
        'buttons' : {
          'OK': {
            click:function () {
//                    alert(selected );
                var link;       
                link = ROOT_URL+'Queue/cancelreservation/confirmnumber/'+selected ;        
                $.ajax({
                    url: link,
                    type: 'GET',
                    async: true,
                    success: function(data){
                        renderAgain();
                        addRightPane();
                        $(APPOINTMENT_LIST_CLASS).animate({
                            scrollTop: 0
                        });

                    },
                    error: function(){
                        /*@TODO : What if the ajax request fails */
                    }
                });
            }

          },
          'Cancel': {
            click: function () {
              $('#dialogoutput').text('Cancel');
            },
            icon: "delete",
            theme: "c"
          }
        }

    });             
}
于 2012-08-04T20:45:26.410 に答える