I use "data" attribute and in IE7 and I don't know how to get value of it. Can jQuery possibly help me?
I have this
window.event.srcElement.getAttribute('data-pk')
Of course it does not work.
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>
jQuery can help ... the data attribute works with the data() function in jQuery.
$(srcElement).data('pk');
You can use it with any data attribute, for example, if you had:
<div id="DivId" data-something="foo" data-somethingElse="bar">
You can get the data out by:
$('#DivId').data('something');
$('#DivId').data('somethingElse');
To set data:
$('#DivId').data('something', 'foo');
$('#DivId').data('somethingElse', 'bar');
Here is a link to jQuery .data()
EDIT:
I think you want:
$('.image').click(function () {
openSlide($(this).data('pk'), false);
});
The top answer is outdated. Given the example <div id="DivId" data-somethingElse="bar"></div>
, you will have to do $('#DivId').data('somethingelse')
to get the data. The better standard way is to use snake case in HTML, which will yield camelcase in JavaScript:
HTML:
<div id="foo" data-something-else="bar"></div>
JS:
alert($('#foo').data('somethingElse')); // Alerts "bar"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With