2011-12-09 33 views
10

tôi đang cố gắng một cái gì đó như sau,

$(document).bind ('pageshow', function (e, data) { 
    console.log ($('#page_spots')); 
    console.log ($.mobile.activePage); 

    if ($.mobile.activePage == $('#page_spots')) { console.log ('Bingo!'); } 
}); 

#page_spots một div với các thiết lập thuộc tính data-role-page. Trong ví dụ trên, khi trang đang hoạt động là #page_spots Tôi muốn đăng nhập 'Bingo!' trong bảng điều khiển.

Tôi là người mới hoàn thành với jQM và tôi không biết liệu đây có phải là cách phù hợp hay không.

Cảm ơn bạn trước và xin lỗi vì tiếng anh của tôi.

Trả lời

26

Bạn có thể lấy ID trang hoạt động từ $.mobile.activePage và so sánh nó với một chuỗi chứ không phải cố gắng để so sánh với một đối tượng jQuery:

$(document).bind ('pageshow', function (e, data) { 
    console.log ($('#page_spots')); 
    console.log ($.mobile.activePage); 

    if ($.mobile.activePage.attr('id') == 'page_spots') { console.log ('Bingo!'); } 
}); 

Đây là một bản demo: http://jsfiddle.net/E6YuA/

$.mobile.activePage là tốt đẹp để vì nó luôn là đối tượng được lưu trong bộ nhớ cache của phần tử data-role="page" hiện tại mà bạn có thể tham khảo nhanh chóng.

Cập nhật

Tôi chỉ đọc này một lần nữa và bạn không cần phải sử dụng .attr() để tìm ID, bạn có thể thêm một chút một cách nhanh chóng bằng cách truy cập các thuộc tính trực tiếp từ DOMElement: $.mobile.activePage[0].id

+0

Cảm ơn Jasper! Tôi không thể chấp nhận câu trả lời của bạn nhưng tôi sẽ trong vòng 2 phút. – novato

+0

Cảm ơn bạn đã chỉnh sửa! – novato

Các vấn đề liên quan