その HTML コードを考えると:
<div id="details" data-type="motion">
<p>Lorem ipsum</p>
</div>
<img src="http://placehold.it/50x50" data-type="motion" />
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidun...</p>
次のスクリプトのセレクターが正しく動作しないのはなぜですか?
$(document).ready(function () {
$('[data-type="motion"]').each(function() {
$this = $(this);
$(window).bind('scroll', function() {
var yOffset = (window.pageYOffset / $this.data('speed')) + 'px';
$this.css({'border': '1px solid red'});
});
});
});
を使用する'[data-type="motion"]'
と、画像のみが選択されます。'div[data-type="motion"]'
もちろん、そのデータ属性を持つ div のみを選択します。'*[data-type="motion"]'
また、画像と一致するだけで'img[data-type="motion"], div[data-type="motion"]'
、冗長なようで、機能していません。
これは、その動作を示す Fiddle です: http://jsfiddle.net/Y7QXn/