2013-03-22 6 views
0

Представьте себе, что я нахожусь на странице home.html, там, у меня есть событие щелчка к элементу, который будет огнем changePage к user.htmlдва события происходят на changePage

OK, элемент в home.html выставиться в header, а в user.html у меня есть другой элемент в той же позиции html.

Проблема в том, что когда я нажимаю элемент на home.html, у меня еще одно событие vclick на другой странице. Эта проблема возникает только с использованием vclick или tap, используя clickРаботы нормальные, а два элемента должны быть в одинаковой позиции html на обеих страницах.

это мое событие переплетены в home.html

accessProfile: function(){ 
    $("body").on("vclick", ".accessUser", function(){ 
     $.mobile.changePage("user.html"); 
    }); 
} 

и это один переплетены в user.html

accessHome: function(){ 
    $("body").on("vclick", ".accessHome", function(){ 
     $.mobile.changePage("home.html"); 
    }); 
} 

это просто пример, так, vclick в accessUser , то changePage происходит, но когда закончится, произойдет событие .accessHome и вернусь домой. Опять же, это происходит только тогда, когда оба элемента находятся в одной и той же позиции HTML.

+0

Вы должны указать, какой элемент должен обрабатывать событие. Попробуйте заменить $ ('body') на' $ .mobile.activePage'. Событие будет запущено на активной странице. – Omar

+0

вы можете привести пример, просто чтобы убедиться, что я делаю. –

+0

Хммм .. Я только заметил, что элементы имеют разные классы. Хорошо, попробуйте этот '$ ('. AcessHome'). On ('vclick', function() {ваш код});' – Omar

ответ

0

Ну, в то время, моя проблема была решена changeing все к pageinit вместо $(document).ready(function(){...}); и предотвращения нескольких событий с помощью:

$("body").on("touchstart", ".someElement", function(event){ 
    if(event.handled !== true){ // This will prevent event triggering more then once 
     // code 
     event.handled = true; 
    } 
    return false; 
}); 
Смежные вопросы