jQuery не работает в Firefox, но работает в Chrome - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть этот jQuery код:

function action(action){
    event.preventDefault();
    var products = $("#check-list input:checkbox:checked").map(function(){
      return $(this).val();
    }).get();
    var string = JSON.stringify(products);
    var table = $('#table').val();

    if(products.length != '0' || action === 'old-all'){
        $.ajax({
            type: 'post',
            url: 'app/toolbar.php',
            data: {action:action, table:table, ids:string},
            success:function(data){
                localStorage.setItem('notify', data);
                location.reload();
            },
        });
    } else{
        notify('You must choose an element first');
    }
}

Я использую jQuery 3.3.1.

Если я нажму кнопку, не установив флажок, я получу You must choose an element first, ноесли я выбираю элемент, toolbar.php должен работать и делать то, что должен (в зависимости от того, какая кнопка была нажата:

<button class="grey-btn" onClick="action('delete')">Delete</button>
<button class="grey-btn" onClick="action('update')">Update</button>

Он отлично работает на Chrome, но не работаетна Firefox. Я пробовал некоторые ответы, которые я нашел на некоторых других подобных «работах с Chrome, но не на Firefox», но ни один из них не работал: (

1 Ответ

0 голосов
/ 25 сентября 2018

Вы не определяете событие, так что это ваша проблема.Откажитесь от использования встроенных обработчиков событий и свяжите его с помощью jQuery.

$("[data-action]").on("click", function (event) {
  event.preventDefault();
  var btn = $(this);
  var action = btn.data("action");
  console.log(action);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="grey-btn" data-action='delete'>Delete</button>
<button class="grey-btn" data-action='update'>Update</button>

Если вы действительно хотите использовать встроенные обработчики событий, чем

function action (event, method) {
  event.preventDefault();
  console.log(method);
}
<button class="grey-btn" onClick="action(event, 'delete')">Delete</button>
<button class="grey-btn" onClick="action(event, 'update')">Update</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...