小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JQuery無廢話系列教程(三) 實戰(zhàn)篇中

 賈朋亮博客 2014-02-25
這套教程在我博客以及CSDN論壇里發(fā)布后,個人感覺挺受大家歡迎的,對次我很開心,雖然有些懷疑是否原創(chuàng)的聲音,但我想本來就是自己寫的也不去管了。

    

      在實戰(zhàn)篇上發(fā)布后很多朋友建議用真正的“實戰(zhàn)”例子。 好吧,我盡量用我自己的項目中的例子來講解,但如果開篇說的那樣,我自己也是剛剛開始學(xué)JQuery,所以自己項目中的例子也許是很簡單的。

 

       有些朋友希望我講解一些有關(guān)JavaScript,CSS方面的知識,說實話我本沒有準(zhǔn)備在本套教程里討論與此有關(guān)的知識, 但挺多朋友們提出建議,那我準(zhǔn)備粗略討論一下,一帶而過.,權(quán)當(dāng)起個拋磚引玉的作用.

 

       JavaScript方面

       最基礎(chǔ)的核心功能 如運算符(+-*/等) 控制流程語句(if,for,while等) 等等我就不說了. 這是最最基本的知識.

 

       BOM知識

       BOM  Browser Object Model  瀏覽器對象模型.

       window對象是BOM最重要的對象. 我們可以簡單的把一個IE窗口理解為一個window對象.

       window.location

       window.history

       window.screen

       window.document 這個是我們最常用的

 

       事件

       其實挺簡單的,但要記住事件的驅(qū)動有兩模式, "冒泡"與"捕獲"

       冒泡: 激活順序是事件從它(事件)觸發(fā)點開始向上層逐級冒泡(觸活)直至document(上面所說的window.document)為止.

       捕獲: 激活順序與冒泡相反,事伯從第一層(document)逐級向下直止找到最終的事件激活目標(biāo).

       上面兩個概念看過去是麻煩,我們只要記住一般都用"冒泡"就可以了.  

    

       DOM

       DOM  Document Object Model 文檔對象模型.

       我非常喜歡這個功能(模型), 因為她實現(xiàn)了WEB界面的千變?nèi)f化.(個人想法)

       window.document 就是DOM要操作的對象, DOM把document內(nèi)的節(jié)點 (<head><title><body><form><table><div> 等等)分析成為一棵文檔結(jié)構(gòu)樹.然后我們就可以對這棵樹進行增加,修改,刪除. 對這棵樹里各節(jié)點的各種屬性同樣進行增加,修改,刪除. 比如綁定CSS的class屬性. 通過這些操作,一個HTML的展顯就完全在我們控制當(dāng)中. 我們可以動態(tài)的增加節(jié)點(比如<tr>,<div>等),也可以在運 行中控制節(jié)點是否可見(display:none)等等..

      CSS方面      

      CSS Cascading Style Sheet 層疊樣式表單

     如果說HTML是骨架和肉體,JavaScript是思想與行為的話,那CSS就是衣服.

     定義CSS

     三種

     節(jié)點名 {各種樣式屬性} 如: p{} 作用范圍:所有p節(jié)點, body{} 整個body節(jié)點, table{} 各所table節(jié)點

     #節(jié)點ID名 {各種樣式屬性} 如: #myID{} 作用范圍  ID為"newNode"的節(jié)點.(只要ID為"newNode"就符合要求)

     .樣式名 {各種樣式屬性}      如: .newStyle{} 作用范圍 所有元素(節(jié)點)的class屬性包含了該樣式名("newStyle")的節(jié)點.

        

       總結(jié):

       以上是我對JS以及CSS的一些理解,更多知識還是有待自己進一步學(xué)習(xí). JavaScript推薦書籍.<<JavaScript高級程序設(shè)計>> <<ppk談JavaScript>>.

<<JavaScript高級程序設(shè)計>> 這本要注意,因為很多學(xué)習(xí)JavaScript的書都叫這個名字,因為我看的是電子版,沒有有關(guān)作者的信息,所以就把目錄結(jié)構(gòu)說一下,以方面我們在選擇時有個考慮.

 目錄結(jié)構(gòu) 第一章:JavaScript 是什么 第二章 ECMAScript基礎(chǔ) 第三章 對象基礎(chǔ),第四章 繼承.

        CSS的書我真的沒怎么看過,都是從網(wǎng)上找的資料.

 

      好,現(xiàn)在進入我們今天的正題.

      今天我從我自己的網(wǎng)站(http://www.)里拿了一個實例與大家一起分析.在此申明一下, 不討論代碼寫的好不好,只討論如何實現(xiàn),代碼優(yōu)化是一件很漫長的事情.呵.

      該實例的功能是我網(wǎng)站右上方排序方式的自適應(yīng)顯示是如何實現(xiàn)的. 記住今天說的是選擇排序方式時的自適應(yīng)顯示,而不是排序.

      目前我網(wǎng)站上對搜索出的淘寶商品的顯示有三種排序方式,每種排序方式里又有一個可選的子排序.  我現(xiàn)在的討論的功能是當(dāng)一個主排序方式被選擇,那么對應(yīng)的可選子排序就會顯示出來提供給用戶選擇,其它的兩個不顯示. 呵,很簡單吧. 但我們今天是用JQuery來實現(xiàn).

        效果如下:

      

 

        排序圖片      

       效果2

 

        三種方式的界面上的排版在這兒不多說,我把三種排序單選框以及對應(yīng)的可選子排序復(fù)選框的ID在這兒說明一下.

 

        方式一

                   單選框為 cbType1CreditDesc

                   復(fù)選框為 cbType1PriceAsc 

                   復(fù)選框后的標(biāo)簽   labType1PriceAsc

        方式二

                   單選框為 cbType2PriceAsc    

                   復(fù)選框為 cbType2CreditDesc 

                   復(fù)選框后的標(biāo)簽   labType2CreditDesc

 

        方式三

                   單選框為 cbType3PriceDesc

                   復(fù)選框為 cbType3CreditDesc

                   復(fù)選框后的標(biāo)簽   labType3CreditDesc

 

        JS代碼

//當(dāng)網(wǎng)頁被完全LOAD后所執(zhí)行函數(shù) load;

$(document).ready(function(){
        load();
});

 

function load(){

        var controlShow = function(){
           if ($("#cbType1CreditDesc").attr("checked") == true) {
               $("#cbType1PriceAsc").css("display", "inline-block");
               $("#labType1PriceAsc").css("display", "inline-block");
           }
           else {
               $("#cbType1PriceAsc").css("display", "none");
               $("#labType1PriceAsc").css("display", "none");
           }


           if ($("#cbType2PriceAsc").attr("checked") == true) {
               $("#cbType2CreditDesc").css("display", "inline-block");
               $("#labType2CreditDesc").css("display", "inline-block");
           }
           else {
               $("#cbType2CreditDesc").css("display", "none");
               $("#labType2CreditDesc").css("display", "none");
           }
        
           if ($("#cbType3PriceDesc").attr("checked") == true) {
               $("#cbType3CreditDesc").css("display", "inline-block");
               $("#labType3CreditDesc").css("display", "inline-block");
               $("#cbType3CreditDesc>lable").css("display", "inline-block");
           }
           else {
               $("#cbType3CreditDesc").css("display", "none");
               $("#labType3CreditDesc").css("display", "none");
            }  

         }

        //當(dāng)方式一的賣家信用從高至低被選擇后進行的操作
       $("#cbType1CreditDesc").click(function(){
           controlShow();

       });

       //當(dāng)方式二的商品價格從低至高被選擇后的操作
       $("#cbType2PriceAsc").click(function(){
           controlShow();

       });

       //當(dāng)方式3的商品價格從高至代被選擇后的操作
       $("#cbType3PriceDesc").click(function(){
           controlShow();

       });

}

 

藍(lán)色代碼的分析

因為三小段代碼的功能結(jié)構(gòu)是一樣的,所以我只拿第一小段的代碼來分析說明

       $("#cbType1CreditDesc").click(function(){
           controlShow();

       });

該段的代碼有一個新的知識點, JQuery的事件綁定

$().click(執(zhí)行函數(shù)) 在每一個匹配元素的click事件中綁定一個處理函數(shù)。

 

 $("#cbType1CreditDesc") 該代碼是選擇ID為cbType1CreditDesc的元素(DOM里稱為節(jié)點),最后結(jié)果是方式一的單選框.

 那上面整段代碼的意思是, 為ID為cbType1CreditDesc元素的click事件綁定一個函數(shù)function(){controlShow();}

 這是是JQuery對click事件綁定的二種方法中的一種,另一種的實現(xiàn)為

 $("#cbType1CreditDesc").bind('click',function(){
           controlShow();

 

  }

 第一種是以函數(shù)的方式現(xiàn)實click事件,另一種是以參數(shù)的方式來綁定

 相關(guān)知識, 解除事件綁定

 $("#cbType1CreditDesc").bind('click'); 這樣我們就解除了id為cbType1CreditDesc元素的click事件的綁定了.

 

 

桔紅色代碼的分析

同樣是因為三小段代碼的功能結(jié)構(gòu)是一樣的,所以只拿第一小段代碼來分析

             if ($("#cbType1CreditDesc").attr("checked") == true) {
               $("#cbType1PriceAsc").css("display", "inline-block");
               $("#labType1PriceAsc").css("display", "inline-block");
           }
           else {
               $("#cbType1PriceAsc").css("display", "none");
               $("#labType1PriceAsc").css("display", "none");
           }

該段的代碼有二個新的知識點, JQuery的元素屬性.

$().attr("屬性名") 取得第一個匹配元素的屬性值。通過這個方法可以方便地從第一個匹配元素中獲取一個屬性的值。如果元素沒有相應(yīng)屬性,則返回 undefined 。

$().css("樣式屬性","屬性值")  在所有匹配的元素中,設(shè)置一個樣式屬性的值

 

那第一小段代碼的意思就是

      當(dāng)ID為cbType1CreditDesc的元素的屬性checked 為true(也就是說被選定了)時 為ID為cbType1PriceAsc的元素設(shè)置名為display樣式屬性的值為"inline-block"(顯示),如果該元素未被選擇則設(shè)置該元素的display樣式屬性的值為"none"(不顯示)

 

      好,今天就到這兒吧.

     

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多