here의 jQuery 별 등급 플러그인을 사용하고 있습니다. 그러나 페이지로드시 11 회 호출되는 함수가 있습니다! 이 함수는 등급이 제출 될 때 (예 : 별표를 클릭 할 때)에만 호출되어야합니다. 페이지로드에서 호출되는 것을 막을 수있는 방법이 있습니까? ,페이지로드시 여러 번 호출되는 jQuery 함수 방지
$(".auto-submit-star").rating({
callback: function (value, link) {
$.getJSON('/Handlers/RatingHandler.ashx?productId=' + pid + '&productScore=' + value, function (data) { postRatingUpdate(data); });
}
});
내가 어떤 확신을 가지고 플러그인의 JS 파일에 파고 라운드 갈 수있는 충분한 자바 스크립트를 모르는 :
이 (문서) 내 JS 파일에 .ready이 $에있는 기능입니다 무대 뒤에서 무슨 일이 일어나는지 확실하지 않습니다.
이
은 등급 별을 렌더링하는 HTML입니다 :<input class="auto-submit-star" type="radio" name="product-rating" value="1" />
<input class="auto-submit-star" type="radio" name="product-rating" value="2"/>
<input class="auto-submit-star" type="radio" name="product-rating" value="3"/>
<input class="auto-submit-star" type="radio" name="product-rating" value="4"/>
<input class="auto-submit-star" type="radio" name="product-rating" value="5"/>
UPDATE : 언급 된 일부 수정을 시도 후, 나는이 평가 방법은 여러 번 호출 점점되지 않았 음을 깨달았다하지만, 그 안에 콜백이 있었고, 이것이 내 getJSON 호출을 포함하기 때문에 여러 번 호출되었습니다. 다중 콜백이 필요하다고 생각합니다. 라디오 버튼을 별로 변환하십시오.
해결책은 getJSON 호출을 별도의 기능으로 이동하고 플러그인의 js 파일에서 OnClick을 별 뒤에 html에 추가하는 것이 었습니다.
div 단위로 중첩되어 있습니까? 당신은 시도 했습니까 [this] (http://api.jquery.com/event.stopPropagation/) – tjameson
"rating"방법은 어디서 오는 것입니까? 그것은 아마 문제가있는 곳일 것입니다. –
@Mike 플러그인에서 왔습니다. – eagerMoose