Функция щелчка JQuery, предотвращающая запрос ajax - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть простая кнопка редактирования, которая должна сделать запрос AJAX.Когда вы нажимаете эту кнопку, у меня появляется функция JQuery, которая также должна прокручивать окно до формы.

Проблема в том, что функция JQuery работает, но вызов AJAX никогда не выполняется.Я знаю, что проблема в функции, потому что, если я закомментирую ее, будет выполнен запрос AJAX.

<div class="panel-footer clearfix">
  <%= link_to 'Edit', user_movie_edit_review_path(review.user, review.movie,review), method: :patch, remote: true, class: 'review-edit btn btn-primary btn-xs pull-left' %>
  <div class="col-sm-1"><i class="fa fa-facebook-official fa-2x"></i></div>
  <div class="col-sm-1"><i class="fa fa-twitter-square fa-2x"></i></div>
  <div class="col-sm-1"><i class="fa fa-google-plus fa-2x"></i></div>
</div>
<script>
    $(document).ready(function(){ 
        $(".review-edit").click(function(e){
            $('html, body').animate({scrollTop : 0},500);
            return false;
        });
    });
</script>

Ответы [ 2 ]

0 голосов
/ 21 сентября 2019

вы пытались использовать e.preventDefault ()?

$(".review-edit").click(function(e){
  e.preventDefault()
  $('html, body').animate({scrollTop : 0},500); 
});

or
$(".review-edit").on("click", function(e) {
  e.preventDefault();
  $('html, body').animate({scrollTop : 0},500);
})

или из функции ready () ... Я думаю, что это лучшее решение

$(document).ready(function(){...})
$(document).on("click", ".review-edit", function(e) {
  e.preventDefault();
  $('html, body').animate({scrollTop : 0},500);
})
0 голосов
/ 21 сентября 2019

Вы можете поместить желаемую функцию в другое место и вызывать ее при необходимости.Из того, что я понял, функция еще не связана с вашим элементом, потому что она еще не существует в DOM (когда она загружается), поэтому JavaScript не найдет элемент, когда документ будет готов, только когда определенное событиезапускает создание элемента.

Попробуйте установить свою функцию вне из $(document).ready и связать ее с элементом в другом событии, которое, как вы знаете, будет называться после элемент на самом деле находится в DOM.

Надеюсь, этот ответ поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...