Jquery的點擊事件,三句代碼完成全選事件


先來看一下Js和Jquery的點擊事件

舉兩個簡單的例子

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script src="jquery-1.11.2.min.js"></script>
</head>

<body>
<input type="button" value="測試" onclick="test()" />
<input type="button" value="測試2" id = "btn" />

</body>
<script type="text/javascript">
function test()
{
  alert("aa");    
}
$(document).ready(function(e) {
    
    $("#btn").click(function(){
    alert("第二個按鈕");    
        
        })
    
});

</script>
</html>

aa  是Js點擊觸發的事件

第二個按鈕   是Jquery點擊觸發的事件

看一下運行的效果

點擊測試

再點擊測試2

再來看一下,從代碼上它們有什么區別

Js中,給他們加事件,是在按鈕后面加個點擊事件

Jquery中,是通過個id找到這個元素,然后點擊后才觸發的事件

Js中如果要給好幾個元素都加事件,需要每句代碼后面都要加點擊事件,來看一下Juery中

運行的結果

三個按鈕都可以彈出同樣的一句話

那如果想知道點擊了誰該怎么做呢?

來看一下事件部分的代碼

這句話的意思就是 選取點擊它自身的值,來看一下運行的結果

點擊測試4

點擊測試5

點擊測試三也是同樣的效果

顯示的是他們的value值

再做一個比較有趣的點擊事件

先大概講一下然后再來看他們的代碼

有三個按鈕,點擊單純點擊第二個,是不會彈窗口的,要先點擊第一個,再點擊第二個才可以,如果再點擊第三個,那么再點擊第二個,又不行了,等於說給它移除了這個事件

來看一下代碼

<input type="button" value="掛事件" id="gua" />
<input type="button" value="測試事件" id="ceshi" />
<input type="button" value="移出事件" id="yichu" />
//點擊給測試事件按鈕掛上一個事件
  $("#gua").click(function(){
    //bind方法用於掛事件
    $("#ceshi").bind("click",function(){
        
        alert("掛上了事件");
        
        });
    })
//點擊給測試時間按鈕移除點擊事件    
    $("#yichu").click(function(){
        $("#ceshi").unbind("click");
        })
    

注意,我只是截取了關鍵的部分代碼,那些引入Jquery包,還有最外層的代碼還是需要的

來看一下運行的效果

這時候點擊測試事件是不管事的,那就點擊掛事件再來點擊測試事件看看有什么樣的效果

 

 這時候測試事件可以點擊了,而且點擊多少次都可以,如果點擊了移除事件,那么測試事件就不能彈出了

這里有兩個關鍵字要記住,就是加事件和減事件,以后做動態可以用到  bind需要兩個參數,unbind需要一個

下面再來看一下Jquery做全選

之前做的全選都是用Js做的,Js做的全選其實有BUG,不知道大家有沒有注意,就是如果光點全選按鈕的話還是好使的,要是你單獨點擊某個按鈕的話,再點擊全選就會出現問題

來看一下Js做全選的部分代碼

運行的結果

點擊全選

都沒有問題,如果單獨點擊某一項,再來看一下

點擊全選

再點擊一下

確實是有問題

下面主要來看一下Jquery怎么樣來做全選,來看一下代碼部分

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script src="jquery-1.11.2.min.js"></script>
</head>

<body>
<br />
<div><input type="checkbox" id="qx" onclick="xuan()" /> 全選</div>
<br />
<div>
<input type="checkbox" class="ck" /> 山東
<input type="checkbox" class="ck" /> 淄博
<input type="checkbox" class="ck" /> 張店
<input type="checkbox" class="ck" /> 淄川
<input type="checkbox" class="ck" /> 桓台

</div>
</body>
<script type="text/javascript">
/*function xuan()
{
    var a = document.getElementById("qx");
    var ck = document.getElementsByClassName("ck");
    
    for(var i=0;i<ck.length;i++)
    {
        if(a.checked)
        {
            ck[i].setAttribute("checked","checked");
        }
        else
        {
            ck[i].removeAttribute("checked");
        }
    }
}*/


$("#qx").click(function(){
    //    var xz = $(this)[0].checked;   //DOM對象
        var xz = $(this).prop("checked");   //Jquery對象
        $(".ck").prop("checked",xz);
    })
    

</script>
</html>

綠色部分是注釋Js做法的

Jquery做起來其實就用三句代碼非常簡便,而且沒有BUG

可以來看一下運行的結果,先來試一下點擊單獨一項

點擊全選

再次點擊

沒有問題

Jquery中是可以統一給他設置的,無論樣式還是事件

 


免責聲明!

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



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