jQuery 不适用于 Firefox 但适用于 Chrome
jQuery doesn't work on Firefox but works on Chrome
我有这个 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
上不起作用。我正在尝试一些我在其他一些类似 'works on chrome but not on firefox' 问题上找到的答案,但没有一个有效:(
你没有定义事件所以这是你的问题。远离使用内联事件处理程序并将其与 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>
我有这个 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
上不起作用。我正在尝试一些我在其他一些类似 'works on chrome but not on firefox' 问题上找到的答案,但没有一个有效:(
你没有定义事件所以这是你的问题。远离使用内联事件处理程序并将其与 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>