input[type=checkbox]


  一個問題,今天用jquery-1.11.3.min.js時遇到的關於input復選框的問題。

類似於以下代碼:

<ul class="demo">
    <li><label ><input type="checkbox"/>首頁</label></li>
    <li><label ><input type="checkbox"/>關於</label></li>
    <li><label ><input type="checkbox"/>產品</label></li>
</ul>

需要實現,點擊li,判斷復選框是否選中,如果選中的話,取消選中,如果未選中,則選中,在1.11.3的版本中,使用

$('.demo').on('click', 'li label', function(ev){

  var isChecked = $(this).find('input').is(':checked');

  if(!isChecked){

    $(this).find('input').attr('checked', true);

  }else{

    $(this).find('input').attr('checked', false);

  }

  ev.preventDefault();

});

  在第一次未選中時,點擊,可以選中,再次點擊,取消選中,再次點擊時,從開發者工具中顯示,再次被選中,但是頁面中復選框的對勾並未勾上,后改為1.8.3版本,完全可以實現。而且是在IE8上面也沒問題,只有chrome和opera瀏覽器上(只測試了這兩款瀏覽器),反復試驗依然無法取得正確結果,也未能找到原因。

  后經qq群朋友解答,使用prop函數替代attr,完美實現需要的效果,但是依然不解attr導致的問題的根源在哪?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM