1

私はこのようなコードを持っています..

// 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;

「通常の」ブラウザは問題なく値を取得し、すべてがうまく機能しますFirefoxChromeしかし、何も起こって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+-> IE8で動作するかどうか知っている人はいますか?

jQueryまた、IE8 でも動作する jQuery を使用してこのデータを取得する別の方法がある場合は、これにタグを付けました。

4

3 に答える 3

4

datasetIE が IE11 で属性のサポートを開始したようです: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset

使ってみてくださいgetAttribute()

var flag_status = event.target.getAttribute('data-change');
var winner_id = event.target.getAttribute('data-winner');
var item_id = event.target.getAttribute('data-item');

data()jQuery を使用している場合は、次のメソッドを使用してこれを簡単に行うことができます。

var $target = $(event.target);
var flag_status = $target.data('change');
var winner_id = $target.data('winner');
var item_id = $target.data('item');

data()HTML 要素の属性が変更されない場合にのみ使用してください。jqueryのドキュメントから:

data- 属性は、 data プロパティが最初にアクセスされたときに取得され、その後はアクセスまたは変更されません (その後、すべてのデータ値は jQuery に内部的に保存されます)。

変更された HTML 属性を再読み込みする必要がある場合は、次のattr()メソッドを使用してください。

var $target = $(event.target);
var flag_status = $target.attr('data-change');
var winner_id = $target.attr('data-winner');
var item_id = $target.attr('data-item');
于 2014-04-12T18:35:52.363 に答える
0

クリックイベント内で var item_id = $(this).attr("data-item") などを使用します

于 2014-04-12T18:37:25.063 に答える