1

jquery ui ダイアログの Open 属性を使用して、2 つの変数を初期化しています。

                      $('<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()閉じるボタンを使用してダイアログを閉じた後でも、ダイアログは for によって返された値を保持しており、$('#all-tabs').children().size()異なるはずです。変数をリセットするには、ページを更新する必要があります。ダイアログが読み込まれるたびに、変数をリセットして再初期化するにはどうすればよいですか。

4

1 に答える 1

1

コードは、ダイアログが開かれるたびに子の数を再計算します。表示されている子の数だけが必要だと思われます。その場合は、次のことを試してください。

open: function() {
  var showPerPage = 5;
  var numberOfItems = $('#all-tabs').children(':visible').length; 
  console.log(numberOfItems + ' ' + showPerPage);
}
于 2012-12-11T08:11:10.367 に答える