2012-11-26 12 views
6

trong ứng dụng Sencha Touch 2 của tôi, tôi cần phải xử lý các sự kiện chuyển hướng của riêng mình. Bởi điều này tôi có nghĩa là tôi cần để có thể xử lý một sự kiện href và làm chuyển hướng bản thân mình.Sencha Touch 2 - ngăn chặn sự kiện a href (xử lý sự kiện a href)

Tôi đang sử dụng đoạn mã sau:

Ext.Viewport.element.addListener("tap", function(e) { 
    e.stopEvent(); 
    e.stopPropagation(); 
    e.preventDefault(); 
    var href = e.target.getAttribute("href"); 
    // ... my code ... 
}, this, {delegate: "a"}); 

Bởi không ai trong số các chức năng nêu trên làm việc (stopEvent, stopPropagatioon, preventDefault). Ứng dụng luôn mở liên kết trong chế độ xem web ứng dụng của tôi.

Có cách nào để vô hiệu hóa một liên kết mở href?

Trả lời

12

Tôi thường làm điều này theo cách này:

Ext.Viewport.element.dom.addEventListener('click', function (e) { 
    if (e.target.tagName !== 'A') { 
     return; 
    }; 
    e.preventDefault(); 
    var href = e.target.getAttribute('href'); 
}, false); 

Try here

Hy vọng điều này giúp

+0

này được nó! Cảm ơn rất nhiều! – MalcomCZ

+1

Tốt, điều này cũng giải quyết được vấn đề của tôi. Sẵn sàng để mất điểm danh tiếng stackoverflow cho biết Sencha Touch 2.2.1 như của 8/13/2013 không được ghi nhận là tốt. Đây chỉ là một trong nhiều vấn đề tôi đang phải đối mặt trong một dự án nâng cấp. Kinda 'nhắc tôi về IE. #endrant. –