2012-04-18 21 views
13

Đây là cách tôi đang cố gắng để móc vào các sự kiện mobileinit:Làm thế nào để liên kết sự kiện "mobileinit" trong jQuery Mobile?

$(document).bind("mobileinit", function() { 
    console.log("Mobile init"); 
}); 

Nhưng điều này không hoạt động trên Chrome (phiên bản mới nhất), v0.9.1 Ripple và trên BlackBerry Bold 9790 chạy OS7.0 .

Lưu ý: Tôi cũng đã thử sử dụng .on() thay vì .bind() nhưng không có may mắn. Cả hai phiên bản di động jQuery (1.0.1 và 1.1.0) đều thất bại.

Trả lời

45

Tôi đã sử dụng nó và nó hiện hoạt động.

Có thể có điều gì khác đang phá vỡ tập lệnh hoặc điện thoại di động không bị sa thải không?

Chrome có cháy điện thoại di động không?

Tôi vừa tìm thấy một số mã tôi đã sử dụng trong jQuery Mobile 1.0 và chúng tôi vừa nâng cấp lên 1.1.0 và nó hoạt động.

Bạn đang đảm bảo cũng bao gồm thường xuyên ol 'jQuery, phải không?

jQueryMobile's docs do it, vì vậy tôi chắc chắn rằng nó hoạt động. Cái gì khác phải sai. Xin lỗi tôi không giúp được gì nhiều. Bạn có thêm thông tin nào không? Hoặc thử với một thiết bị khác.

[sửa] Trên cùng trang đó, nó nói "Vì sự kiện mobileinit được kích hoạt ngay lập tức, bạn sẽ cần ràng buộc trình xử lý sự kiện của mình trước khi jQuery Mobile được tải. : "

<script src="jquery.js"></script> 
<script src="custom-scripting.js"></script> <!-- Note your script before jqm --> 
<script src="jquery-mobile.js"></script> 

Dường như thứ tự tập lệnh có thể quan trọng.

+3

Và tệp 'custom-scripting.js' sẽ lưu bộ xử lý sự kiện' mobileinit' của bạn để nó bị ràng buộc bởi thời gian jQuery Mobile i nitializes (và kích hoạt sự kiện 'mobileinit'). – Jasper

+0

Tôi biết điều này, đã đọc nó trong tài liệu, nhưng nó vẫn bắt tôi. Cám ơn vì bài viết. Đã lưu tôi giờ! –

+0

@DaveR Tôi biết đây là tổng số sang một bên, nhưng tôi đã không làm việc với jQuery Mobile nhiều kể từ tháng Tư và cùng ngày bạn nhận xét, tôi đang làm việc để biên dịch một ứng dụng với PhoneGap được thực hiện trong jQM. Dù sao, vui vì tôi có thể giúp! – CWSpear

5

Dưới đây là một ví dụ đơn giản làm việc với tôi (cho ios android và)

<script type="text/javascript" src="files/resources/lib/jquery/jquery-1.8.2.js"> </script> 
<script type="text/javascript"> 
$(document).bind("mobileinit", function() 
       { 
       if (navigator.userAgent.toLowerCase().indexOf("android") != -1) 
       { 
       // your logic here 
       $.mobile.defaultPageTransition = 'none'; 
       $.mobile.defaultDialogTransition = 'none'; 
       } 
       if (navigator.userAgent.toLowerCase().indexOf("msie") != -1) 
       { 
       // your logic here 
       $.mobile.allowCrossDomainPages = true; 
       $.support.cors = true; 
       } 
       }); 
</script> 
<script type="text/javascript" src="files/resources/lib/jquerymobile/1.3.2/jquery.mobile-1.3.2.js"></script> 
  1. bao gồm các tập tin jquery chính
  2. bind mobileinit trước jquery mobile
  3. bao gồm js jquery mobile nộp
Các vấn đề liên quan