2009-10-29 4 views
4

체크 박스가있는 페이지가 있는데, 그 중 하나는 모두 선택 버튼입니다. 따라서 사용자가 모두 선택을 클릭하면 다른 모든 상자를 검사하고 다른 상자를 클릭하면 모두 선택을 취소합니다. 여기에 코드가 있습니다.jQuery 체크 박스 이벤트가 실행되지 않습니까?

  $(document).ready(function(event){ 
       //alert('wtf'); 
      $('#mailSubscribeAll').click(function(event){ 
       //alert('wtf'); 
       $('.mailingCheckbox').attr('checked','checked'); 
      });    

      $('.mailingCheckbox').bind('click',function(event){ 
       //alert('wtf'); 
       $('#mailSubscribeAll').removeAttr('checked'); 
      }); 

     }); 

내 페이지가 jQuery를로드하고 있으므로 첫 번째 경고가 트리거됩니다. 어떤 클릭 이벤트도 알림을 제공하지 않습니다. 내 HTML이 정확한지 다시 확인했습니다.

jQuery에 대해 잘못된 이벤트를 사용하고 있습니까? 아니면 내 페이지에 jQuery가 아닌 다른 JavaScript와 충돌이있을 수 있습니까?

HTML 코드 :

<tr> 
    <td class="CBT3" colspan="3" height="29"> 
     <input type="checkbox" class="mailingCheckbox" id="mailNewsAlerts" value="1" {if $smarty.session.profile.mailNewsAlerts}checked{/if} onclick="subscribeMarkProfile()"> 
     <label for="mailNewsAlerts"><b>News Alerts</b> - <cite>The latest breaking news from XXXXXXX</cite></label> 
    </td> 
</tr>  
<tr> 
    <td class="CBT3" colspan="3" height="29"> 
     <input type="checkbox" id="mailSubscribeAll" value="1" {if $smarty.session.profile.mailSubscribeAll}checked{/if} > 
     <label for="mailSubscribeAll"><b>Subscribe me to all XXXXX newsletters!</b> </label> 
    </td> 
</tr>  

나는 또한 체크 박스로 페이지의 일부를 추가하는거야는 페이지가로드 될 때 표시되지 않습니다, 그러나 그것은 HTML에있다. 버튼을 클릭 한 후에 영역을 표시하지만 페이지가로드되면 처음에는이 확인란이 보이지 않습니다.

+0

: 당신이 두 가지 기능을 갖고 있기 때문에

$('.mailingCheckbox').bind('change', ... 

은 당신이 좋아하는 일을해야한다 HTML 스 니펫을 사용할 수 있습니까? – jvenema

+0

이 코드는 혼란 스럽습니다. 테이블에있는 모든 코드와 멋진 HTML 코드가 아닌 멋진 템플릿 코드를 붙여 넣은 whoops가 있습니다. 그러나 확인한 결과 – tkotitan

+0

도 기술적으로는

태그에 없습니다. 문제. – tkotitan

답변

1

그것은 다음 코드로 나를 위해 예상대로 작동합니다

<div> 
    <input type="checkbox" id="mailSubscribeAll"/> 
    <input type="checkbox" class="mailingCheckbox"/> 
    <input type="checkbox" class="mailingCheckbox"/> 
</div> 

<script type="text/javascript"> 
    $(document).ready(function(event){ 
    $('#mailSubscribeAll').click(function(){ 
     $('.mailingCheckbox').attr('checked','checked'); 
    });    
    $('.mailingCheckbox').click(function(){ 
     $('#mailSubscribeAll').removeAttr('checked'); 
    }); 
    });  
</script> 

이이 문제에 어떤 빛을 창고 있습니까?

1
$("input:checkbox #mailSubscribeAll").click(function(event){ 
    $('.mailingCheckbox').attr('checked','checked'); 
}); 

괜찮아 보이지만이 코드를 지금 사용해보세요.

1

프로그래밍 체크 박스의 상태를 변경할 때 당신은 또한, 이벤트 change 확인을 클릭합니다 항상 해고되지 않습니다

function changeMailingCheckbox(...) { ... } 
$('.mailingCheckbox').bind('change', changeMailingCheckbox) 
$('.mailingCheckbox').bind('click', changeMailingCheckbox) 
+0

감사합니다. 시도해 보았습니다. 운. 내 페이지가 테이블의 엉망진창 인 것 같아 jQuery가 그것을보고 마음을 잃어 가고있는 것일까? – tkotitan

관련 문제