我有这样的代码..
// Get some data
var id = event.target.id;
var flag_status = event.target.dataset.change;
var winner_id = event.target.dataset.winner;
var item_id = event.target.dataset.item;
像Firefox
和Chrome
这样的“普通”浏览器可以毫无问题地获得这些值,而且一切都很好;但是,IE8
没有发生任何事情,因此我假设它无法获取数据。event
参数通过以下代码传递给此函数:
$('.shipping_status').click(function(event) {
event.preventDefault();
// Update Shipping Status
updateShippingStatus(event);
});
..,然后在单击以下示例元素之一时依次获取它:
<a title="Item Being Processed" class="shipping_status processing" data-item="102383" data-winner="172" data-change="0" id="processing_102383" href="#"></a>
<a title="Item Posted" class="shipping_status posted active" data-item="102383" data-winner="172" data-change="1" id="posted_102383" href="#"></a>
<a title="Problem With Item" class="shipping_status problem" data-item="102383" data-winner="172" data-change="3" id="problem_102383" href="#"></a>
<a title="Item Delayed" class="shipping_status delayed last" data-item="102383" data-winner="172" data-change="2" id="delayed_102383" href="#"></a>
有什么方法可以让它在IE8下工作吗?...另外,我没有IE9+来测试-有人知道它在IE9+下是否工作吗?
我还用jQuery对此进行了标记,如果有一种替代方法可以用jQuery获得这些数据,并且这种方法也可以在IE8中使用。
3条答案
按热度按时间nqwrtyyt1#
看起来IE刚刚开始支持IE11中的
dataset
属性:https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset尝试使用
getAttribute()
:如果您使用jQuery,使用
data()
方法可以使这一过程变得简单:仅当HTML元素上的属性不会更改时才使用
data()
。data属性在第一次访问data属性时被拉入,然后不再被访问或改变(所有数据值随后都存储在jQuery内部)。
如果需要重新读取更改的HTML属性,只需使用
attr()
方法:m2xkgtsf2#
您不能在IE8中使用event.preventDefault(),但应该使用event.returnValue。
解决办法是:
(event.preventDefault) ? event.preventDefault() : event.returnValue = false;
sulc1iza3#
使用
点击事件内部等