91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JQuery實例

發布時間:2020-04-06 05:34:02 來源:網絡 閱讀:6232 作者:beanxyz 欄目:web開發

前面學習了原生的DOM,現在看看如何使用JQuery。JQuery建議使用1.12的版本,這樣對舊版本的IE兼容性比較好。


例1.添加,刪除class

知識要點:

1. 通過<script src='jquery-1.12.4.js></script>調用jquery

2. 相對于Dom的document.getElementbyID('i1'), JQuery直接使用$('#i1');

類似的,查找類可以用$('.c1'),查找p標簽 $('p'),查找form的元素 $(':text') ,還可以組合使用。具體的選擇器可以參考https://www.w3schools.com/jquery/jquery_ref_selectors.asp

3. addclass(‘hide’)直接給找到的標簽添加一個樣式class,removeClass('hide')刪除一個class,無需使用classlist了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .hide{
            display: none;
        }
    </style>
</head>
<body>
    <input type="button" value="hide" onclick="hides();"/>
    <div id="i1">
        <div class="item"></div>
        <div class="item">
            <div class="c1">123</div>
            <a>百度</a>
        </div>
        <div class="item"></div>
    </div>
    <div id="i2"></div>
    <script src="jquery-1.12.4.js"></script>
    <script>
        flag=true;
        function hides() {
            if (flag==true){
                 $('#i1').addClass('hide');
                 console.log(flag)
                 flag=false;
            }else{
                 $('#i1').removeClass('hide');
                     console.log(flag)
                 flag=true;
            }
        }
    </script>
</body>
</html>

點擊hide按鈕切換隱藏效果


JQuery實例


例2. 全選和反選

這個例子在前面的Dom里面出現過,現在看看JQuery如何實現


知識點:

1. 選擇器可以組合使用 比如 $('#tb :checkbox') 表示id=tb下面所有的checkbox元素

2. 對于checkbox的屬性,通過prop()來實現,如果是自定義的其他的屬性,通過attr()實現

3. each()可以實現循環,循環里面如果輸出this,可以看見他是一個dom的格式,如果把他轉換成jquery對象的格式(數組格式),可以通過$(this)實現,如果想把jquery轉為dom的格式,那么直接取第一個數組的值就行了,例子里面實現了3種方式,dom,jquery以及三元運算符的格式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <input type="button" value="全選" onclick="checkAll();" />
    <input type="button" value="反選" onclick="reverseAll();" />
    <input type="button" value="取消"  onclick="cancleAll();"/>
    <table border="1">
        <thead>
            <tr>
                <th>選項</th>
                <th>IP</th>
                <th>PORT</th>
            </tr>
        </thead>
        <tbody id="tb">
            <tr>
                <td><input type="checkbox" /></td>
                <td>1.1.1.1</td>
                <td>80</td>
            </tr>
            <tr>
                <td><input type="checkbox" /></td>
                <td>1.1.1.1</td>
                <td>80</td>
            </tr>
            <tr>
                <td><input type="checkbox" /></td>
                <td>1.1.1.1</td>
                <td>80</td>
            </tr>
        </tbody>
    </table>
    <script src="jquery-1.12.4.js"></script>
    <script>
        function checkAll() {
            $('#tb :checkbox').prop('checked',true);
        }
        function cancleAll() {
            $('#tb :checkbox').prop('checked',false);
        }
        function reverseAll() {
            $(':checkbox').each(function(k){
                // this,代指當前循環的每一個元素
                // Dom
                /*
                if(this.checked){
                    this.checked = false;
                }else{
                    this.checked = true;
                }
                */
                /*
                if($(this).prop('checked')){
                    $(this).prop('checked', false);
                }else{
                    $(this).prop('checked', true);
                }
                */
              // 三元運算var v = 條件? 真值:假值
                var v = $(this).prop('checked')?false:true;
                $(this).prop('checked',v);
            })
        }
    </script>
</body>
</html>




例3 隱藏菜單

知識點:

1. click的事件可以直接選擇到標簽之后執行,這個比在html里面使用onclick事件要好很多。

2. Jquery支持鏈式的編程,因此如下所示可以一行實現很多功能


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .header{
            background-color: black;
            color: wheat;
        }
        .content{
            min-height: 50px;
        }
        .hide{
            display: none;
        }
    </style>
</head>
<body>
    <div >
        <div class="item">
            <div class="header">標題一</div>
            <div id="i1" class="content hide">內容</div>
        </div>
        <div class="item">
            <div class="header">標題二</div>
            <div class="content hide">內容</div>
        </div>

        <div class="item">
            <div class="header">標題三</div>
            <div class="content hide">內容</div>
        </div>
    </div>
    <script src="jquery-1.12.4.js"></script>
    <script>
        $('.header').click(function(){

            $(this).next().removeClass('hide').parent().siblings().find('.content').addClass('hide')

        })
    </script>
</body>
</html>



例4.  復制,刪除文本框

clone()克隆標簽

find()查找標簽

attr()添加一個事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div>
        <p>
            <a onclick="Add(this);"> + </a>
            <input type="text" />
        </p>
    </div>
    <script src="jquery-1.12.4.js"></script>
    <script>
        function Add(ths){
            var p = $(ths).parent().clone();
            p.find('a').text(' - ');
            p.find('a').attr('onclick', 'Remove(this);');
            $(ths).parent().parent().append(p);
        }
        function Remove(ths){
            $(ths).parent().remove();
        }
    </script>
</body>
</html>

效果:點擊+自動復制一行,點擊-刪除自己所在


JQuery實例


例5. 綁定事件-例2的升級版

例2里面我們需要給每個標簽都手動的添加onclick事件,如果可以統一綁定事件,會省事很多。有兩種方式,如下所示;


$(function){

    ....

 }里面執行的...會在文檔樹加載之后自動執行,不會等待所有的圖片內容的加載


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .hide{
            display: none;
        }
        .menu{
            width: 200px;
            height: 600px;
            border: 1px solid #dddddd;
            overflow: auto;
        }
        .menu .item .title{
            height: 40px;
            line-height: 40px;
            background-color: #2459a2;
            color: white;
        }
    </style>
</head>
<body>
    <div class="menu">
        <div class="item">
            <div class="title">菜單一</div>
            <div class="body">
                <p>內容一</p>
                <p>內容一</p>
                <p>內容一</p>
                <p>內容一</p>
                <p>內容一</p>
            </div>
        </div>
        <div class="item">
            <div class="title" >菜單二</div>
            <div class="body hide">
                <p>內容二</p>
                <p>內容二</p>
                <p>內容二</p>
                <p>內容二</p>
                <p>內容二</p>
                <p>內容二</p>
            </div>
        </div>
        <div class="item">
            <div class="title">菜單三</div>
            <div class="body hide">
                <p>內容三</p>
                <p>內容三</p>
                <p>內容三</p>
                <p>內容三</p>
                <p>內容三</p>
                <p>內容三</p>
            </div>
        </div>
    </div>
    <script src="jquery-1.12.4.js"></script>
    <script>
//方法一
//        $(function(){
//            // 當文檔樹加載完畢后,自動執行
//            $('.item .title').click(function(){
//                // this,$(this)
//                $(this).next().removeClass('hide');
//                $(this).parent().siblings().find('.body').addClass('hide');
//            });
//        });
        
        
//方法二        
        $('.item .title').bind('focus', function () {
            $(this).next().removeClass('hide');
            $(this).parent().siblings().find('.body').addClass('hide');
        })
        
    </script>
</body>
</html>



例6  事件的延遲綁定

比如通過javascript創建的新標簽,如何讓他自動綁定事件?可以通過delegate實現

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <input type="button" onclick="Add();" />
    <ul>
        <li>123</li>
        <li>456</li>
        <li>789</li>
    </ul>
    <script src="jquery-1.12.4.js"></script>
    <script>
        $(function(){
            /*
            $('li').click(function () {
                alert($(this).text());
            });
            */
            $("ul").delegate("li","click",function(){
                alert($(this).text());
            });
        });
        function Add(){
            var tag = document.createElement('li');
            tag.innerText = '666';
            $('ul').append(tag);
        }
    </script>
</body>
</html>

JQuery實例




例7 模態對話框 (高級版)

之前用DOM實現過模態對話框,現在用JQuery實現同樣的功能。

知識要點:


1.模態對話框的HTML和CSS布局,3層,最上層居中,中間一個陰影層,最下面是主界面,上面兩層默認隱藏,通過z-index區分上下順序

2. 可以通過attr()方法來獲取和設置自定義的屬性;如果是checkbox或者radio,那么通過prop()方法來獲取和設定屬性

3.通過屬性來定位元素,比如 $("[editable='false']")則可以獲取editable屬性為false的那個標簽元素

4. 文本編輯,對于InnerText的值是通過text()實現,對于input的表單內容則是通過val()實現

5. 添加class,刪除class通過addClass()和removeClass()實現

6. delegate 延遲綁定的實現,一般用于未來的新的標簽,比如通過腳本創建的標簽

7. 動態的創建標簽,可以直接插入html字符串或者通過CreateElement()實現

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .hide{
            display: none;
        }
        .modal{
            position: fixed;
            top: 50%;
            left: 50%;
            width: 500px;
            height: 400px;
            margin-left: -250px;
            margin-top: -250px;
            background-color: #eeeeee;
            z-index: 10;
        }
        .shadow{
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            opacity: 0.6;
            background-color: black;
            z-index: 9;
        }

        .item{
            position: relative;
            width: 100px;
            margin-top: 20px;
            margin-left: 30px;

        }
        .label{
            width: 40px;
            color: chocolate;
        }
        .content{
            width:100px;
            position: absolute;
            right:-80px;

        }
        .buttons{
            margin-top: 20px;
            margin-left: 30px;
        }
    </style>
</head>
<body>
    <a onclick="addElement();">添加</a>

    <table border="1" id="tb">
        <tr>
            <td target="hostname">1.1.1.11</td>
            <td target="port">80</td>
            <td target="ip">80</td>
            <td editable="true">
                <a class="edit" >編輯</a> | <a class="del">刪除</a>
            </td>
        </tr>
        <tr>
            <td target="hostname">1.1.1.12</td>
            <td target="port">80</td>
            <td target="ip">80</td>
            <td editable="true">
                <a class="edit">編輯</a> | <a class="del">刪除</a>
            </td>
        </tr>
        <tr>
            <td target="hostname">1.1.1.13</td>
            <td target="port">80</td>
            <td target="ip">80</td>
            <td editable="true">
                <a class="edit">編輯</a> | <a class="del">刪除</a>
            </td>
        </tr>
        <tr>
            <td target="hostname">1.1.1.14</td>
            <td target="port">80</td>
            <td target="ip">80</td>
            <td editable="true">
                <a class="edit">編輯</a> | <a class="del">刪除</a>
            </td>

        </tr>
    </table>

    <div class="modal hide">
        <div >
            <div class="item">
                <label class="label">主機名</label>
                <input class="content" name="hostname" type="text"  />
            </div>
            <div class="item">
                <label class="label">端口</label>
                <input class="content" name="port" type="text" />
            </div>
            <div class="item">
                <label class="label">IP地址</label>
                <input class="content" name="ip" type="text" />
            </div>

        </div>

        <div class="buttons">
            <input type="button" value="取消" onclick="cancelModal();" />
            <input type="button" value="添加" onclick="addModal();" />
            <input type="button" value="修改" onclick="updateModal();" />
        </div>
    </div>

    <div class="shadow hide"></div>

    <script src="jquery-1.12.4.js"></script>
    <script>

        $("#tb").delegate('.del',"click",function () {
            $(this).parent().parent().remove();
        })

        function  addModal() {

            var tr = document.createElement('tr');
            var td1 = document.createElement('td');
            td1.innerHTML = $(".modal input[name='hostname']").val();
            var att1=document.createAttribute('target');
            att1.value='hostname';
            td1.setAttributeNode(att1);

            var td2 = document.createElement('td');
            td2.innerHTML = $(".modal input[name='port']").val();
              var att2=document.createAttribute('target');
              att2.value='port';
            td2.setAttributeNode(att2);
			 
			var td3 = document.createElement('td');
            td3.innerHTML = $(".modal input[name='ip']").val();;
              var att3=document.createAttribute('target');
              att3.value='ip';
            td3.setAttributeNode(att3);
			
			var td4 = document.createElement('td');
            td4.innerHTML = " <a class='edit'>編輯</a> | <a class='del'>刪除</a>"

            $(tr).append(td1);
            $(tr).append(td2);
			$(tr).append(td3);
			$(tr).append(td4);
			

            $('#tb').append(tr);

            $(".modal,.shadow").addClass('hide');

        }

        function  addElement() {
            $(".modal,.shadow").removeClass('hide');
        }
        function cancelModal() {
            $(".modal,.shadow").addClass('hide');
            $('.modal input[type="text"]').val("");
        }
        function updateModal(){
            var host=$(".modal input[name='hostname']").val()
            var port=$(".modal input[name='port']").val()
            var ip=$(".modal input[name='ip']").val()
            var tds=$("[editable='false']").prevAll()
            console.log(tds)
            tds.each(
                function () {
                    console.log($(this).attr('target'))
                    if($(this).attr('target')=='ip'){
                        $(this).text(ip);
                        console.log('update ip')
                    }
                    else if($(this).attr('target')=='port'){

                        $(this).text(port);
                    console.log('update port')
                    }
                    else if($(this).attr('target')=='hostname'){

                        $(this).text(host)
                        console.log('update host')
                    }

                }
            )


                 $(".modal,.shadow").addClass('hide');


            $("[editable='false']").attr('editable','true')
        }



        $("#tb").delegate(".edit","click",function() {
            $(".modal,.shadow").removeClass('hide');
            // this
            $(this).parent().attr('editable', 'false')
            var tds = $(this).parent().prevAll();
            tds.each(function () {
                // 獲取td的target屬性值
                var n = $(this).attr('target');
                // 獲取td中的內容
                var text = $(this).text();
                var a1 = '.modal input[name="';
                var a2 = '"]';
                var temp = a1 + n + a2;
                $(temp).val(text);
            })
        })


    </script>
</body>
</html>

JQuery實例


例8 TAB效果


知識點:

1.AddClass和RemoveClass的使用

2.小技巧,通過自定義的屬性值進行匹配,定位標簽的時候因為格式為[attr=‘value’]的格式,因此做了一個字符串的拼接

3.注釋掉的代碼是另外一種方法,可以通過索引來進行匹配

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .hide{
            display: none;
        }
        .menu{
            height: 38px;
            background-color: #eeeeee;
            line-height: 38px;
        }
        .active{
            background-color: brown;
        }
        .menu .menu-item{
            float: left;
            border-right: 1px solid red;
            padding: 0 5px;
            cursor: pointer;
        }
        .content{
            min-height: 100px;
            border: 1px solid #eeeeee;
        }
    </style>
</head>
<body>
    <div >
        <div class="menu">
            <div  class="menu-item active" a="1">菜單一</div>
            <div  class="menu-item" a="2">菜單二</div>
            <div  class="menu-item" a="3">菜單三</div>
        </div>
        <div class="content">
            <div b="1">內容一</div>
            <div class="hide"  b="2">內容二</div>
            <div class="hide" b="3">內容三</div>
        </div>
    </div>
    <script src="jquery-1.12.4.js"></script>
    <script>
        $('.menu-item').click(function(){
            $(this).addClass('active').siblings().removeClass('active');
            var target = $(this).attr('a');
           # $('.content').children().eq($(this).index()).removeClass('hide').siblings().addClass('hide');
            $('.content').children("[b='"+ target+"']").removeClass('hide').siblings().addClass('hide');
        });
    </script>
</body>
</html>


JQuery實例


例9 點贊


知識點:

1. Jquery里面通過css()來改變一個標簽的style

2. 思路和Dom一樣的,動態創建一個span標簽,通過定時器改變大小和位置,當透明度低于一定程度,結束定時器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .container{
            padding: 50px;
            border: 1px solid #dddddd;
        }
        .item{
            position: relative;
            width: 30px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="item">
            <span>贊</span>
        </div>
    </div>
    <div class="container">
        <div class="item">
            <span>贊</span>
        </div>
    </div>
    <div class="container">
        <div class="item">
            <span>贊</span>
        </div>
    </div>
    <div class="container">
        <div class="item">
            <span>贊</span>
        </div>
    </div>
    <script src="jquery-1.12.4.js"></script>
    <script>
        $('.item').click(function () {
            AddFavor(this);
        });
        function AddFavor(self) {
            // DOM對象
            var fontSize = 15;
            var top = 0;
            var right = 0;
            var opacity = 1;
            var tag = document.createElement('span');
            $(tag).text('+1');
            $(tag).css('color','green');
            $(tag).css('position','absolute');
            $(tag).css('fontSize',fontSize + "px");
            $(tag).css('right',right + "px");
            $(tag).css('top',top + 'px');
            $(tag).css('opacity',opacity);
            $(self).append(tag);
            var obj = setInterval(function () {
                fontSize = fontSize + 10;
                top = top - 10;
                right = right - 10;
                opacity = opacity - 0.1;
                $(tag).css('fontSize',fontSize + "px");
                $(tag).css('right',right + "px");
                $(tag).css('top',top + 'px');
                $(tag).css('opacity',opacity);
                if(opacity < 0){
                    clearInterval(obj);
                    $(tag).remove();
                }
            }, 40);
        }
    </script>
</body>
</html>


例10 鼠標移動窗口

下面這個例子可以通過鼠標拖曳窗口


知識點:


1. offset()顯示的是當前標簽在整個html里面的坐標,還有一個position()顯示的是在absolute在relative標簽里面的位置


2. event=e || windows.event 是為了兼容舊版的IE來獲取當前的事件, _event.clientX和_event.clientY這里獲取的是鼠標的坐標


3. 綁定事件有幾種方式,比如直接通過標簽執行  $(''#title).mousover(function(){}); 或者通過on綁定,off接觸綁定,例如$(''#title).on('mousemove',function(){}), $(''#title).off('mousemove'); 或者可以通bind和unbind綁定和接觸綁定,比如例5;最后還可以通過delegate()來延遲綁定,比如例6 


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div >
        <div id="title" ></div>
        <div ></div>
    </div>
<script type="text/javascript" src="jquery-1.12.4.js"></script>
<script>
    $(function(){
        //鼠標放在標簽上面自動變成移動的符號
        $('#title').mouseover(function(){
            $(this).css('cursor','move');
        });
        //鼠標單擊的事件
        $("#title").mousedown(function(e){
            console.log($(this).offset());
            //鼠標所在的坐標
            var _event = e || window.event;
            var ord_x = _event.clientX;
            var ord_y = _event.clientY;
            console.log(ord_x)
            console.log(ord_y)
            //標簽左上角在html里面的坐標
            var parent_left = $(this).parent().offset().left;
            var parent_top = $(this).parent().offset().top;
            $('#title').on('mousemove', function(e){
                var _new_event = e || window.event;
                var new_x = _new_event.clientX;
                var new_y = _new_event.clientY;
                //獲取標簽左上角的新坐標
                var x = parent_left + (new_x - ord_x);
                var y = parent_top + (new_y - ord_y);
                $(this).parent().css('left',x+'px');
                $(this).parent().css('top',y+'px');
            })
        });
        $("#title").mouseup(function(){
            //撤銷綁定事件
            $("#title").off('mousemove');
        });
    })
</script>
</body>
</html>


JQuery實例

例11 阻止事件的發生

有的時候,我們會希望根據一定的條件阻止某個事件的發生,比如表單驗證,如果不符合格式或者內容,則無法提交。


知識點:

默認情況下,當我們執行了自定義的Click事件后,他會自動跳轉到href指定的地址。但是如果我們把自定義的事件返回值為false,那么他就不會執行后面的操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a onclick="return ClickOn()"  >走你1</a>
    <a id="i1" >走你2</a>
    <script src="jquery-1.12.4.js"></script>
    <script>
        function ClickOn() {
            alert(123);
            return false;
        }
        $('#i1').click(function () {
            alert(456);
            return false;
        })
    </script>
</body>
</html>


例12 JQuery的擴展事件


如果希望自己定義一個事件,然后讓JQuery來調用的,可以通過extend

知識點:

1. extend的使用有兩種方式:$. extend('name':function(){})定義,然后$.name來調用; 或者是$.fn.extend()定義,然后通過$('#id').name的方式來調用


2. 可以把這些擴展方法都寫入一個專門的js文件,注意在plugin文件里面,我們是把他放在了一個自執行的方法里面,這個是為了避免和其他js文件里面變量名的沖突。這里我可以直接把JQuery作為參數傳進去,這樣arg.extend 就相當于$.extend了


plugin1.js

(function (arg) {
    var status = 1;
    arg.extend({
       'Hellow': function () {
           return 'HOHOH';
       }
    });
})(jQuery);


test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <script src="jquery-1.12.4.js"></script>
    <script src="plugin2.js"></script>
    <script>
        var v = $.Hellow();
        alert(v);
    </script>
</body>
</html>

JQuery實例

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东安县| 酒泉市| 平度市| 阿图什市| 龙口市| 萨嘎县| 南昌市| 洛宁县| 蒲江县| 方正县| 肃南| 花垣县| 平塘县| 明光市| 乐清市| 三台县| 安化县| 沙河市| 汝州市| 保定市| 河池市| 贺州市| 蒙山县| 本溪市| 金阳县| 桂阳县| 镇宁| 嘉定区| 墨竹工卡县| 绵竹市| 平潭县| 都江堰市| 高雄县| 保德县| 万山特区| 师宗县| 玉林市| 松溪县| 东莞市| 武乡县| 江山市|