0
ライブ要素でマウスセンターに問題があります。 javacriptで追加された選択された要素の上にカーソルを置くと、関数はトリガされません。ライブ要素でマウスを移動するにはどうすればよいですか?
this.fixElements = function() {
$('.iconstarsdynamic.isgradeable:not(.touched)').each(function(){
var $self = $(this),
$gradeLength = Math.round(parseInt($self.width())/$maxGrade*100)/100;
$self.addClass('touched');
for ($i = 1; $i <= $maxGrade; ++$i) {
$('<span />', {
"class" : "grader",
"z-index" : $i,
"width" : ($gradeLength*$i)+'px'
}).attr('grade', $i).appendTo($self);
}
});
}
、私はこれでmouseenter
にしてみてください:
this.hover = function() {
$('.iconstarsdynamic.isgradeable')
.on('mouseenter', '.grader', function(){
$(this).css('visibility', 'visible');
console.log('over');
})
.on('mouseleave', '.grader', function(){
$(this).css('visibility', 'hidden');
});
}
私の出力は次のようになります。
<span class="iconstarsdynamic isgradeable touched" title="Rated 0 out of 4">
<span class="stars" style="width:0%;"></span>
<span class="grader" z-index="1" style="width: 9.25px; " grade="1"></span>
<span class="grader" z-index="2" style="width: 18.5px; " grade="2"></span>
<span class="grader" z-index="3" style="width: 27.75px; " grade="3"></span>
<span class="grader" z-index="4" style="width: 37px; " grade="4"></span>
</span>
問題があることですmouseenter
は実行されません。どうしてこれなの? mouseenter
を.iconstarsdynamic.isgradeable
に添付すれば動作しますが、それは私が望むものではありません。私はそれを.iconstarsdynamic.isgradeable .grader
に添付します。
私は 'mouseover'と' mouseout'を試しました。同じ問題ですが、何も起こりません。 – Marwelln
はい、そうです:http://jsfiddle.net/x57Ec/。しかし、ホバリング時にホバリングされた要素を表示させようとしていますか? 'mouseover'イベントは可視要素に対してのみ発生します。そうでない場合は、要素を隠すために' opacity:0'を使うべきです。 –
要素は 'visibility:hidden'で隠されていて、それができないことを知らなかった。ありがとう。 – Marwelln