2012-12-11 44 views
1

使用jquery ui對話框的Open屬性,我正在初始化兩個變量。Jquery UI函數在第一次打開時工作,但不是第二次

     $('<div><b><center>'+ text +'</center></b></div>').dialog({ 
          title: '<b>User(s) with a similar name</b>', 
          modal: true, 
          autoOpen: true, 
          height: 400, 
          width: 400, 
          resizable: false, 
          open: function() { 
           var show_per_page = 5; 
           var number_of_items = $('#all-tabs').children().size(); 
           alert(number_of_items+' '+show_per_page); 
          }, 
          buttons: { 
           "Close": function(){ 
            //alert($(this).attr('class')); 
            number_of_items = 0; 
            $(this).dialog('close'); 
            return false; 
           } 
          } 
         }); 

但對話框持有$('#all-tabs').children().size()爲返回的值我使用的關閉按鈕關閉對話框和$('#all-tabs').children().size()應該是不同的,甚至之後。我不得不刷新頁面來重置變量。如何重置變量並在每次加載對話框時重新初始化變量。

+1

你知道,在open函數的'number_of_items'變量和關閉功能的'number_of_items'變量是不同的變量? close函數中的函數指的是全局變量,而open函數中的函數指向該函數的局部變量。 –

+0

不,我不知道。謝謝 –

回答

1

每次打開對話框時,您的代碼都會重新計算子項的數量。我懷疑你只想看到孩子的數量,在這種情況下,請嘗試以下操作:

open: function() { 
    var showPerPage = 5; 
    var numberOfItems = $('#all-tabs').children(':visible').length; 
    console.log(numberOfItems + ' ' + showPerPage); 
} 
相關問題