首先我做了一些研究,然后我找到了这两个相关的问题:
现在我已经尝试了两种解决方案,其中每种解决方案都可以在Chrome / Firefox中运行,但对于safari来说它只是不起作用。
问题:
我有li
个a
标记,其内置onclick
事件会加载更多产品,但出于某种原因在Safari上点击a
标记没有任何反应,这怎么可能?
代码:
<li id="page_size_8">
<a href="javascript:void(0);" onclick="return marketplaceLogin.setPageSize(\'page_size\', '.$maxAmount.', \'All\');">
All
</a>
</li>
只是要明确这是我尝试过什么并且它无效:
<li id="page_size_8">
<a href="javascript:void(0);" onfocus="return marketplaceLogin.setPageSize(\'page_size\', '.$maxAmount.', \'All\');">
All
</a>
</li>
<li id="page_size_8">
<a href="javascript:void(0);" onclick="javascript:return marketplaceLogin.setPageSize(\'page_size\', '.$maxAmount.', \'All\');">
All
</a>
</li>
PageSize的JS:
setPageSize: function (fieldId, fieldValue, fieldLabel) {
"use strict";
if (typeof fieldId !== "undefined" && typeof fieldValue !== "undefined" && typeof fieldLabel !== "undefined") {
if (fieldValue !== null && fieldValue !== "" && fieldId !== null && fieldId !== "" && fieldLabel !== null && fieldLabel !== "") {
if (!isNaN(fieldValue)) {
fieldValue = parseInt(fieldValue, 10);
if (fieldValue < 5) {
fieldValue = 5;
}
var selectId = '#filter_select_marketplace_login_' + fieldId;
// Update the hidden field
$('input[name=page_size').val(fieldValue);
// Update the dropdown
//window.filterSlider.updateSelectedLabel(selectId);
$(selectId + ' .dropdown_selected_label_left').html(fieldLabel);
// Load page 1, this closes the dropdown instantly
if (typeof window.page_name !== "undefined") {
switch (window.page_name) {
case 'marketplaceloginproducts':
marketplaceLogin.loadProductPage(1);
break;
case 'marketplaceloginorders':
marketplaceLogin.loadOrderPage(1);
break;
}
}
}
}
}
return false;
}
答案 0 :(得分:1)
您的代码应该直接调用函数而不返回
<li id="page_size_8">
<a onclick="marketplaceLogin.setPageSize()">All</a>
</li>
缺少]输入选择上的右括号
$(input[name=page_size]).val(fieldsvalue)
在safari中进行测试,如果不起作用,它会起作用我怀疑它可能是另一个问题。
答案 1 :(得分:-2)
我怀疑问题是javascript
命名空间正用于href
和onclick
。
尝试:
href="#"
你也可以将逻辑从onclick
移到href
- 虽然我会建议不要这样做,因为它不是最佳做法。