Переопределить JavaScript в Framework7
У меня есть HTML-страница posts.html в Framework7. Вот код JS для части posts.html.
myApp.onPageInit('posts', function (page) {
openPostsPageFromDB(function(html){
html = '<ul>'+html+'</ul>';
$$(".posts-page div.posts").html(html);
pageJS();
});
});
function pageJS(){
$$(".post a,.post .post-channel-image,.post #tags").on("click",function(e){
e.stopPropagation();
});
}
openPostsPageFromDB возвращает содержимое HTML после извлечения значений из БД. Я заменяю содержимое HTML файла posts.html на соответствующее возвращаемое значение и затем вызываю pageJS(), чтобы переопределить обработчик события click для определенных элементов в HTML.
Но события не переопределяются, и обработчики событий, определенные по умолчанию в Framework7, запускаются. Есть ли работа вокруг этого?
1 ответ
Метод jQuery .on("click",function(e){})
просто добавляет другого прослушивателя событий в очередь прослушивателей событий элемента. Итак, в вашем случае, если вы хотите отменить все прослушиватели событий щелчка, вам нужно что-то вроде этого:
.unbind('click');
Обновление № 1
unbind
метод был исключен из jQuery 1.7, поэтому вы должны вместо этого использовать off
метод.
.off('click');