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"
          }
        }

    });             
}

问题是我传递给删除约会功能的确认号只是第一次传递,下次不会更新。它保存旧确认号的值,所以我发现我必须将确认号传递给 click 函数。任何人都可以帮助我如何做到这一点?或者我在这里缺少什么?

4

3 回答 3

2

在 jquerymobile 获得更多经验后,我找到了更优雅和正确的方法来解决这个问题

只需使用简单对话框的属性

'cleanOnClose' : true

这将解决您的问题

于 2012-09-04T21:24:54.483 回答
0

想做和你一样的事情,一个可以重新填充一个简单对话框的函数,但问题是 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 回答
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 回答