2015-02-04 2 views
-2

솔직히 말해서, 문제가 내가 사용하고있는 플러그인과 관련된 jQuery와 관련이 있는지 알 수 없습니다.

나는 우리 웹 사이트의 별을 표시하기 위해 RateYo (http://prrashi.github.io/rateYo/) 플러그인을 사용합니다. 그런 다음

<div id="rating-avg" class="rateyo" rating="<?php echo $avg_rating; ?>" preset="true"></div> 

, 내가 전화 home.js하여 플러그인 RateYo를 호출 포함 :}

jQuery.noConflict()(function($){ 
$(document).ready(function() { 
    $(".rateYo").rateYo({ 
     rating: $(this).attr('rating'), 
     readOnly: $(this).attr('preset') 
    }); 
}); 

표시 할 필요가 별의 수는 사업부의 속성에 제시되어있다);

불행히도, 이것은 작동하지 않습니다. 플러그인이 시작되어 별을 만들지 만 $ (this) .attr ('rating') 및 $ (this) .attr ('preset') 변수는 사용되지 않습니다. 등급은 표시되지 않지만 빈 별이 표시됩니다.

나는 다음과 같은 코드를 사용

는 평가 완벽 같습니다

$("#rating-avg").rateYo({ 
     rating: $("#rating-avg").attr("rating"), 
     readOnly: $("#rating-avg").attr("preset") 
    }); 

불행하게도, 나는 수업이 아닌 ID에 의해 걷어차 플러그인이 필요합니다. 사이트의 등급은 다양하므로 ID로 선택하는 것은 옵션이 아닙니다.

내가 뭘 잘못하고 있는지 누가 알 수 있습니까?

+0

http://www.w3.org/TR/CSS2/syndata.html#characters – Ejaz

+0

.rateYo! = .rateyo – Gogol

답변

5

귀하의 값인 this은 올바르지 않으며 클래스 이름에 대문자를 잘못 사용하고 있습니다. 당신은 아마 다음과 같은 작업을 할 수 있습니다 :

$(".rateyo").each(function() { 
    var item = $(this); 
    item.rateYo({ 
     rating: item.attr('rating'), 
     readOnly: item.attr('preset') 
    }); 
}); 

참고, 당신은 아마 HTML5 데이터를 사용해야하는 사용자 정의보다는 속성 속성 :

<div id="rating-avg" class="rateyo" data-rating="<?php echo $avg_rating; ?>" data-preset="true"></div> 

$(".rateyo").each(function() { 
    var item = $(this); 
    item.rateYo({ 
     rating: item.data('rating'), 
     readOnly: item.data('preset') 
    }); 
}); 
+0

그게 전부입니다. 매우 감사합니다! 그것에 대해 생각해 볼 때, 내가 사용한 논리의 오류를 봅니다. 이 특정 문제를 해결하는 것 외에도 앞으로이 문제를 처리하는 방법을 배웠습니다. 다시 한번 감사드립니다. – Rick

1

당신이 rateYo에 참조하고 당신의 jQuery 코드 인 반면 클래스 속성은 rateyo에 대문자 'Y'가 없습니다.

+1

'this'를 사용하는 데 문제가 있으므로 유일한 문제는 아닙니다. – jfriend00

+1

답변 해 주셔서 감사합니다. David! – Rick