Не работает e.preventDefault() в Firefox

329
28 марта 2017, 13:05

Пишу проект на Yii2, и делаю одну кнопку, "Оценить", пользователь на нее нажимает, и аяксом данные должны передаться в контроллер и экшн, в опере и хроме срабатывает всё отлично, а Firefox не поддается ни в какую. То есть в фаерфоксе пользователя перекидывает по ссылке в этот экшн прямо в браузере. И да, прогуглил наверно весь интернет, не помогло. Версия Firefox - 52.0.1. Кто-то сталкивался с вот таким вообще? Вот все вариации которые я уже успел сделать, и которые не привели к успеху

$('.like-btn').on('click', function(e) {
    e.preventDefault();
$('.like-btn').on('click', function(e) {
    e = $.event.fix(e);
    e.preventDefault();
 $('.like-btn').on('click', function(event) { 
event.preventDefault ? event.preventDefault() : (event.returnValue = false);

И конечно же вариант, где в конце return false; (тоже не сработал)

Yii2:

<?= Html::a(Html::button(Html::img(Yii::getAlias("@web") . '/images/like-unactive.png', 
  ['width' => '20px', 'class' => 'like-btn', 'data-id' => $photo->id ]),
  ['class' => 'floating-like', 'name' => 'like', 'value' => $photo->id]),
  ['profile/like', 'id' => $photo->id])
?>

HTML:

<a href="/profile/like?id=50">
  <button type="button" class="floating-like" name="like" value="50">
    <img class="like-btn" src="/images/like-unactive.png" width="20px" alt="" data-id="50">
  </button>
</a>
Answer 1

Как верно углядел @vp_arth, Вы назначаете обработчик для img, но событие всплывает до а.

$('.like-btn').closest('a').on('click', function(e) {
  e.preventDefault();
  ...
});
READ ALSO
Передача файла из input через AJAX

Передача файла из input через AJAX

Пытаюсь передать картинку через AJAXЕсть следующий код:

329
Deffered и delay

Deffered и delay

Всем добрый день, пытаюсь реализовать такую часть кода, нужно чтобы GJ выводилось после задержки в 3500, но почему то не работает, подскажите,...

241
Асинхронная загрузка JQuery?

Асинхронная загрузка JQuery?

Google SpeedTest просит, чтобы не было в коде блокирующего загрузок js, и использовались async и defer

306
Написание плагина на JQuery для передачи файлов на сервер

Написание плагина на JQuery для передачи файлов на сервер

ПриветВопрос таков: У меня есть сайт, написаный на ASP

250