jquery checkbox勾選/取消勾選只能操作一次的詭異問題

來源:互聯網
上載者:User

標籤:問題   win   title   版本   執行   一個   jquery   更新   運行   

第一次執行,沒問題,但第二次執行就有問題了,選擇不了

解決辦法:把attr()換成prop()

 

 $("#CheckedAll").click(function () {                if ($(this).is(":checked")) {                    $("[name=items]:checkbox").prop("checked", true);                } else {                    $("[name=items]:checkbox").prop("checked", false);                }            });

 

PS:prop()和attr()區別:

(來源:http://hxq0506.iteye.com/blog/1046334)

最近在iteye的新聞中看到jQuery已經更新到了1.6.1。和之前版本的最大變化是增加了.prop方法。但是.prop()方法和.attr()方法,單從字面上很難區分。在漢語中properties和attributes都有表示“屬性”的意思。
下面根據這篇博文(javascript:mctmp(0);),簡要翻譯了.prop()和.attr()的用法:

1、從1.5.2升級到1.6.1

通過介紹新方法.prop()以及.attr()方法的改變,jQuery1.6.1引起了一場關於attributes和properties之間有何區別和聯絡的激烈討論。同時,1.6.1也解決了一些向後相容性問題。當從1.5.2升級到1.6.1時,你不必修改任何attribute代碼。

下面是關於jQuery1.6和1.6.1中Attributes模組變化的描述,以及.attr()方法和.prop()方法的首選使用。然而,正如前面所述,jQuery1.6.1允許你使用.attr()方法就像以前它被使用在所有的情況中一樣。

 

2、發生了什麼變化

Attributes模組的變化是移除了attributes和properties之間模稜兩可的東西,但是在jQuery社區中引起了一些混亂,因為在1.6之前的所有版本中都使用一個方法(.attr())來處理attributes和properties。但是老的.attr()方法有一些bug,很難維護。jQuery1.6.1對Attributes模組進行了更新,並且修複了幾個bug。

特別提到的是,boolean attributes,比如:checked,selected,readonly和disabled在1.6.1中和1.6之前的處理相同。這意味著下面的代碼:

 

  1. $(“:checkbox”).attr(“checked”, true);  
  2. $(“option”).attr(“selected”, true);  
  3. $(“input”).attr(“readonly”, true);  
  4. $(“input”).attr(“disabled”, true);  

 

 甚至是這樣的代碼:

 

  1. if ( $(“:checkbox”).attr(“checked”) ) { /* Do something */ }  

 

在1.6.1中沒有必要為了保持之前期望的運行結果而發生任何改變。

  

3、首選用法的概述

 

.prop()方法應該被用來處理boolean attributes/properties以及在html(比如:window.location)中不存在的properties。其他所有的attributes(在html中你看到的那些)可以而且應該繼續使用.attr()方法來進行操作。

 

上面的概述已經描述的夠清楚了,我也沒有必要再總結了

jquery checkbox勾選/取消勾選只能操作一次的詭異問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.