커서를 올려 놓았을 때 별 모양을 가리키면 jQuery 코드가 표시됩니다. 문제는 일단 커서를 꺼낸 후에도 커서가 무엇을 표시했는지 (그리고 원래의 등급은 보이지 않음)입니다. 어떻게하면 커서가 제거되었는지 확인한 다음 원래의 등급을 표시 할 수 있습니까?jQuery Javascript ratings : 사용자가 커서를 끌 때 등급이 다시 나타나게합니다.
$(document).ready(function() {
$("[id^=rating_]").hover(function() {
rid = $(this).attr("id").split("_")[1];
$("#rating_"+rid).children("[class^=star_]").children('img').hover(function() {
$("#rating_"+rid).children("[class^=star_]").children('img').removeClass("hover");
/* The hovered item number */
var hovered = $(this).parent().attr("class").split("_")[1];
while(hovered > 0) {
$("#rating_"+rid).children(".star_"+hovered).children('img').addClass("hover");
hovered--;
}
});
});
$("[id^=rating_]").children("[class^=star_]").click(function() {
var current_star = $(this).attr("class").split("_")[1];
var rid = $(this).parent().attr("id").split("_")[1];
$('#rating_'+rid).load('http://localhost:8888/fivestars/send.php', {rating: current_star, id: rid});
});
});
편집 :
JQuery와에 따라 같이 호버 이벤트가 작동<div id="rating_3">
<span class="star_1"><img src="http://localhost:8888/fivestars/star_blank.png" alt="" class="hover" /></span>
<span class="star_2"><img src="http://localhost:8888/fivestars/star_blank.png" alt="" class="hover" /></span>
<span class="star_3"><img src="http://localhost:8888/fivestars/star_blank.png" alt="" class="hover" /></span>
<span class="star_4"><img src="http://localhost:8888/fivestars/star_blank.png" alt="" /></span>
<span class="star_5"><img src="http://localhost:8888/fivestars/star_blank.png" alt="" /></span>
</div>
@Jack - 코드가 현재 보여준 것처럼 '내부'호버 (hover)가 있습니까? 함수로 매개 변수로 호버를 호출해도 이벤트가 트리거되지 않습니다. 요소에 핸들러를 지정합니다. 일반적으로이 작업은 한 번만 수행되며, 마우스를 올릴 때마다 수행되는 것이 아닙니다. – user113716
OK, 코드를 많이 변경하지는 못했지만 미안하지만 저는 JS 코더가 아닙니다. 어떻게 바꿀 수 있니? – Jack
내 대답을 편집했습니다. 나는 당신이 각각의 '별'위로 마우스를 가져갈 때, 당신은 그 중 하나와 그 앞에있는 것들이 'hover'클래스를 받고, 나머지 것들은 'hover'클래스를 제거하기를 원한다고 가정합니다. – user113716