Vì vậy, hãy đào sâu vào javascript di động jquery (thật là đau đớn) để tìm hiểu xem quyết định đi toàn màn hình này được thực hiện cho danh sách đa lựa chọn. Mã này cho tôi biết rằng không có lá cờ nào như vậy mà tôi có thể đặt để tránh nó.
Tuy nhiên, vì nó phụ thuộc vào chiều cao của danh sách (menuHeight), việc sửa chữa mà làm việc cho tôi là thực hiện một số thay đổi css (giảm đệm cho mỗi mục trong danh sách) để kích thước danh sách của tôi đã giảm:
.ui-selectmenu-list li .ui-btn-inner a.ui-link-inherit
{
padding: .5em 15px .5em 15px;
}
Nếu bạn muốn chắc chắn không hiển thị hộp thoại, sau đó sửa chữa bẩn sẽ ghi đè lên bản sao cục bộ của mã di động jquery (Tôi ghét làm điều này nhưng đó là cách duy nhất):
//TODO: vishalkumar : I can override here by replacing below line by if (false)
if (menuHeight > screenHeight - 80 || !$.support.scrollTop) {
self.menuPage.appendTo($.mobile.pageContainer).page();
self.menuPageContent = menuPage.find(".ui-content");
self.menuPageClose = menuPage.find(".ui-header a");
// prevent the parent page from being removed from the DOM,
// otherwise the results of selecting a list item in the dialog
// fall into a black hole
self.thisPage.unbind("pagehide.remove");
//for WebOS/Opera Mini (set lastscroll using button offset)
if (scrollTop == 0 && btnOffset > screenHeight) {
self.thisPage.one("pagehide", function() {
$(this).jqmData("lastScroll", btnOffset);
});
}
self.menuPage.one("pageshow", function() {
focusMenuItem();
self.isOpen = true;
});
self.menuType = "page";
self.menuPageContent.append(self.list);
self.menuPage.find("div .ui-title").text(self.label.text());
$.mobile.changePage(self.menuPage, {
transition: $.mobile.defaultDialogTransition
});
}
Tôi đã có một mong muốn tương tự, quá tệ nên không có cách nào tốt hơn để thực hiện việc này. Tôi cần phải xử lý các sự kiện popupafterclose trên nhiều danh sách lựa chọn của tôi (vì đây là nơi tôi đang lưu dữ liệu của mình). Tuy nhiên, sự kiện này chỉ được kích hoạt khi nó được hiển thị trong chế độ bật lên, nhưng không được hiển thị ở chế độ trang. Bất kỳ ý tưởng tốt hơn để xử lý một trường hợp như thế này? – scuba88