传递参数来点击jquery移动简单对话框的功能

时间:2012-06-27 08:22:57

标签: jquery jquery-plugins jquery-mobile modal-dialog

我有以下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"
          }
        }

    });             
}

问题是我传递给删除约会功能的确认号码只是第一次传递,下次不会更新。它保存旧确认号的值,所以我发现我必须将确认号传递给点击功能。任何人都可以帮我解决这个问题吗?或者我在这里失踪了什么?

3 个答案:

答案 0 :(得分:2)

经过几周的jquerymobile经验,我找到了解决这个问题的更优雅和正确的方法

只使用简单对话框的属性

'cleanOnClose' : true

这将解决您的问题

答案 1 :(得分: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
}

答案 2 :(得分: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"
          }
        }

    });             
}