문제

DKK

"id ="radio2 "value ="75 " />

while loop에 의해 생성 된이 div 항목이 많이 있습니다. 이것을 달성하고 싶습니다 : 입력 내부 입력이 클릭되면 Entry Entry Div의 배경 이미지가 변경 될 예정이지만 다른 항목 Div에서 다른 라디오를 선택하면 .. 이전의 모든 변화 (예 : 이전 배경 변경과 같은)가 사라지고 현재 DIV의 배경을 변경하려고합니다. 여기에 내가 시도 할 수있는 일이 있습니다. 여기에 jQuery가 있습니다.

$("input").click(function() {

             $(this).parent("div").toggle(function() {
             $(this).parent("div").css("background", "url(images/div_bg_hover.png)");
             }, function() {
             $(this).parent("div").css("background", "url(images/div_bg.png)");

             });

뭔가 오작동하고 있습니다 .. 나는 코드 인스턴트가 전혀 작동하지 않습니다 .. 누구든지 나를 도울 수 있습니까? 감사합니다


나는 이것을 모두 시도했다 :

$("input").click(function() {
                 $("input").each(function() {
                     if (this.checked) {
                         $(this).parent("div").addClass("highlight");
                     }
                     else {
                         $(this).parent("div").removeClass("highlight");
                     }
                 });
             });

그리고

$("input").click(function() {
                 $("input").each(function() {
                     if (this.checked) {
                         $(this).parent("div").css("background", "url(images/div_bg_hover.png)");
                     }
                     else {
                         $(this).parent("div").css("background", "url(images/div_bg.png)");
                     }
                 });
             });

어떤 이유로 든 배경을 바꾸지 않는 것이 전혀 작동하지 않으며 위의 코드로 무언가를해야 할 수도 있습니다. 완전한 스크립트입니다.

 <script type="text/javascript">

         $(document).ready(function() {

             $(".left_navigation a:last").toggleClass('bolder');


             $("input").each(function() {
                 var element_value = $(this).val();
                 $(this).prev("p").append(" " + element_value + ",-");
             });


             $("input").click(function() {
                 $("input").each(function() {
                     if (this.checked) {
                         $(this).parent("div").addClass("highlight");
                     }
                     else {
                         $(this).parent("div").removeClass("highlight");
                     }
                 });
             });




         });

</script>
도움이 되었습니까?

해결책

내가 보는 첫 번째 즉각적인 문제는 당신의 jquery가 누락된다는 것입니다. }); 당신이 거기에 붙여 넣는 것을 잊지 않는 한 그것의 끝에. 그것은 오류를 던지는 것 외에 다른 일을하는 것을 막을 것입니다 ...

이것은 이전에 시도한 단순화 된 버전입니다. 적어도 디버깅을 약간 쉽게 만들 수 있습니다.

<script type="text/javascript">
$(document).ready(function(){
    $("input").click( function() { 
         $("input").parent("div").removeClass("highlight");
         $(this).parent("div").addClass("highlight");
      });
  });
</script>

하지만, 나는 당신이 이전에 시도한 것에 대해 분명히 잘못된 것을 보지 못합니다. $("input") 당신이 생각하는 것을 일치시키고 있습니다. 나는 아마도 정신 검사를 위해 클릭 함수 내부의 일부를 경고 할 것입니다. 나는 실제로 내 몇 번을 발견했다 $(document).ready 프레임 워크 때문에 입력이 준비되기 전에 IE라고 생각하기 전에 발사되었습니다 ...

다른 팁

몇 가지 문제가 있습니다.

  • 당신은 사용 중입니다 비녀장 토글 기능은 다음과 같습니다.

표시되면 토글을 사용하면 숨겨집니다 (숨은 메소드 사용). 그들이 숨겨져 있다면, 토글은 쇼 메소드를 사용하여 보여줍니다.

라디오가 확인되었는지 물어봐야합니다

  • 다른 라디오 div 값을 변경하려면 각 기능을 호출해야합니다.

  • 당신은 전화해야합니다 $(document).ready() 기능

샘플 (샘플경고 : JavaScript는 내 최고의 무기가 아닙니다):

<script>
$(document).ready(function(){
    $("input").click( function() { 
         $("input").each(function() { 
             if (this.checked) {
                $(this).parent("div").css("background-color", "green") }
             else {
                $(this).parent("div").css("background-color", "red")}
          });
      });
  });
</script>

참고 : 더 나은 테스트를 위해 Backgound-Color를 사용했지만 배경 사용이 좋습니다.

이미지를 설정하려면 '배경'대신 '배경 이미지'를 사용해야 할 수도 있습니다.

편집 : 이전에 jQuery의 '배경'CSS 속성에 문제가 있다고 생각했지만 다양한 브라우저에서 테스트 한 결과, 실수하거나 작업 한 이후 jQuery 버전으로 고정 된 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top