javascript - jQuery 不能在 Firefox 上运行,但可以在 Chrome 上运行

标签 javascript jquery ajax cross-browser

我有这个 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

如果我在没有选中复选框的情况下单击按钮,我应该得到您必须首先选择一个元素,但是如果我选择一个元素,toolbar.php应该运行并执行以下操作必须完成的事情(根据按下的按钮:

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

它在 Chrome 上完美运行,但在 Firefox 上不起作用。我正在尝试一些在其他类似的“适用于 chrome 但不适用于 Firefox”问题上找到的答案,但它们都不起作用:(

最佳答案

您没有定义事件,所以这是您的问题。摆脱使用内联事件处理程序并将其与 jQuery 绑定(bind)。

$("[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>

关于javascript - jQuery 不能在 Firefox 上运行,但可以在 Chrome 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500545/

相关文章:

javascript - 我的 javascript 返回此错误 : $. ajax 不是函数

javascript - 如何使用 AJAX 在 HTML 表中显示带有数字键的 JSON 值

javascript - 如何使用 Javascript 动态填充 Django 模板中的选择列表?

javascript - 当事件处理程序附加到父 HTML 元素时,如何防止默认事件操作?

javascript - 通过 JQuery 检查自动生成的文本字段值

javascript - JQuery 脚本,适用于 Firefox,不适用于 IE、Chrome

javascript - 在单页应用程序中上传文件

javascript - 无法使用 javascript 和 mongodb 将 json 对象插入数组

javascript - 将 <p> 转换为 <p> 并用于格式化 html

javascript - 从具有变量的函数中获取变量