Как получить атрибут «данные» в ie 7? - PullRequest
5 голосов
/ 09 сентября 2011

Я использую атрибут «данные» и в IE7, и я не знаю, как получить его значение.Может ли jQuery мне помочь?

У меня есть

window.event.srcElement.getAttribute('data-pk')

Конечно, это не работает.

Редактировать:

for (i=0; i < max; i++) {

    if (typeof attachEvent == 'undefined'){         
        //open[i].addEventListener('click', function(e){ openSlide(e.currentTarget.getAttribute('data-pk')), false});
        open[i].onclick = function(e){ openSlide(e.currentTarget.getAttribute('data-pk')), false};
    } else {
        open[i].attachEvent('onclick', function(){
            openSlide(window.event.srcElement.getAttribute('data-pk'))}, false);
    };
};

html

<div>                             
    <img class='image' data-pk='18' src='/site_media/media/img/120x180.jpg'>                             
    <img class='image' data-pk='13' src='/site_media/media/img/007b-300x224.jpg'>                             
    <img class='image' data-pk='15' src='/site_media/media/img/IMG_0549_1.jpg'>                             
</div> 

Ответы [ 4 ]

12 голосов
/ 09 сентября 2011

jQuery может помочь ... атрибут данных работает с функцией data () в jQuery.

$(srcElement).data('pk');

Вы можете использовать его с любым атрибутом данных, например, если у вас было:

<div id="DivId" data-something="foo" data-somethingElse="bar">

Вы можете получить данные с помощью:

$('#DivId').data('something');
$('#DivId').data('somethingElse');

Чтобы установить данные:

$('#DivId').data('something', 'foo');
$('#DivId').data('somethingElse', 'bar');

Вот ссылка на jQuery .data ()

РЕДАКТИРОВАТЬ:

Я думаю, что вы хотите:

$('.image').click(function () {
    openSlide($(this).data('pk'), false);
});
1 голос
/ 09 июля 2013

Верхний ответ устарел. Учитывая пример <div id="DivId" data-somethingElse="bar"></div>, вам нужно будет сделать $('#DivId').data('somethingelse'), чтобы получить данные. Лучший стандартный способ - использовать случай со змеей в HTML, который даст верблюд в JavaScript:

HTML:

<div id="foo" data-something-else="bar"></div>

JS:

alert($('#foo').data('somethingElse')); // Alerts "bar"
0 голосов
/ 09 сентября 2011

Вы можете использовать jQuerys (или другие библиотеки) attr getter. Или вы можете посмотреть jQuery source и узнать, как они достигли кросс-браузерной согласованности.

0 голосов
/ 09 сентября 2011

В jQuery вы можете использовать метод данных, например так:

$(srcElement).data('pk');

Обратите внимание, что строка для передачи в данные - это просто 'pk', вы просто отбрасываете часть data- атрибута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...