溫馨提示×

溫馨提示×

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

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

jQuery事件

發(fā)布時間:2020-07-15 04:08:27 來源:網(wǎng)絡(luò) 閱讀:184 作者:bigbeatwu 欄目:web開發(fā)

1.事件函數(shù)列表

(1)click鼠標(biāo)事件

(2)mouseover() 鼠標(biāo)進入(進入子元素也觸發(fā))
(3)mouseout() 鼠標(biāo)離開(離開子元素也觸發(fā))
(4)mouseenter()鼠標(biāo)進入(進入子元素不觸發(fā))
(5)mouseleave()鼠標(biāo)離開(離開子元素不觸發(fā))
(6)hover()

$(function(){

    /*移入,子元素也會觸發(fā)*/
    /*$('.box1').mouseover(function(){
        alert('移入');
    })*/
    /*移出,子元素也會觸發(fā)*/
    /*$('.box1').mouseout(function(){
        alert('移出');
    })*/

    /*移入移出,子元素不會觸發(fā),hover是合并寫法*/
    $('.box1').mouseenter(function(){
        alert('移入');
    })

    $('.box1').mouseleave(function(){
        alert('移出');
    })
})

(7)ready()DOM加載完成

(8)resize()瀏覽器窗口的大小發(fā)生改變

$(window).resize(function(){
var $wr = $(window).width();
document.title = $wr;
})

(9)scroll()滾動條的位置發(fā)生變化

(10)submit()用戶遞交表單

$(function(){
/一開始就獲得焦點,元素只能一個獲得焦點,blur失去焦點/
$('#ipt1').focus();
/$('#ipt2').focus();/
$('#fm1').submit(function(){
/alert('提交');/
/拒絕提交/
return false;
})
})

(11)blur()元素失去焦點

(12)focus()元素獲得焦點

$(function(){
/一開始就獲得焦點,元素只能一個獲得焦點,blur失去焦點/
$('#ipt1').focus();
/$('#ipt2').focus();/
})

2.綁定事件的其他方式

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>綁定事件</title>
<script type="text/javascript" src="../jQuery庫/jquery-3.3.1.min.js"></script>
<script type="text/javascript">

$(function(){

    /*click事件
    $('#btn').click(function(){
        alert('click')
    })
    */

    /*移入和點擊都觸發(fā)*/
    $('#btn').bind('mouseover click',function(){
        alert('bind');

        /*第二次進入解綁*/
        $(this).unbind('mouseover');
    })
})
</script>

</head>

<body>

<input type="button" value="進入" id="btn">

</body>
</html>

3.事件冒泡

在一個對象上觸發(fā)某類事件(比如單擊onclick),如果此對象定義了此事件的處理程序,那么此事件就會調(diào)用這個處理程序,如果沒有定義此事件處理程序或者事件返回true,那么這個事件會向這個對象的父級對象傳播,從里到外,直至它被處理(父級對象所有同類事件都將被激活),或者它達到了對象層次的最頂層,即document對象(有些瀏覽器是window)

4.事件冒泡的作用

事件冒泡允許多個操作被集中處理(把事件處理添加到一個父級元素上,避免把事件處理器添加到多個子級元素上),它還可以讓你在對象層的不同級別捕獲事件。

5.阻止事件冒泡

事件冒泡機制有時候是不需要的,需要阻止掉,通過event.stopPropagation()來阻止

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>事件冒泡</title>
<script type="text/javascript" src="../jQuery庫/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function(){

    /*事件往上傳,彈出123,a表示事件對象,一般寫event*/
    $('.son').click(function(a){
        alert(1);
        /*阻止事件冒泡*/
        a.stopPropagation();
    })
    /*彈出23*/
    $('.father').click(function(){
        alert(2);
    })
    /*彈出3*/
    $('.grandfather').click(function(){
        alert(3);
        /*第二種阻止事件寫法*/
        return false;
    })
    /*整個文檔最頂級*/
    $(document).click(function(){
        alert(4);
    })
})

</script>

<style type="text/css">

.grandfather{
    width: 300px;
    height: 300px;
    background-color: antiquewhite;
    cursor: pointer;
}
.father{
    width: 200px;
    height: 200px;
    background-color: indianred;
    cursor: pointer;
}
.son{
    width: 100px;
    height: 100px;
    background-color: tan;
    cursor: pointer;
}
</style>

</head>

<body>

<div class="grandfather">
    <div class="father">
        <div class="son">
        </div>
    </div>
</div>

</body>
</html>

6.阻止默認行為

阻止表單提交

7.合并阻止

一般把阻止冒泡和阻止默認行為合并起來寫,合并寫法可以用

$('.grandfather').click(function(){
alert(3);
/第二種阻止事件寫法,合并寫法/
return false;
})

例子:彈框

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>彈框</title>
<script type="text/javascript" src="../jQuery庫/jquery-3.3.1.min.js"></script>
<script type="text/javascript">

$(function(){
    $('.btn').click(function(){
        $('.pop_con').fadeIn();
        return false;
    })
    $(document).click(function(){
        $('.pop_con').fadeOut();

    })
    $('.pop1').click(function(){

        return false;
    })
    $('#off').click(function(){
        $('.pop_con').fadeOut();
    })

})
</script>

<style type="text/css">

.pop_con{
    display: none;
}
.pop1{

    width: 300px;
    height: 300px;
    border: 3px solid #000;
    background-color: #87CEF5;
    position: fixed;
    left: 50%;
    top: 50%;
    margin-left: -150px;
    margin-top: -150px;
    z-index: 100;
}

.pop2{
    width: 100%;
    height: 100%;
    background-color: #000000;
    opacity: 0.3;
    filter: alpha(opacity=30);
    position: fixed;
    left: 0;
    top: 0;
    z-index: 98;
}
.close{
    font-size: 30px;
    text-decoration: none;
    color: red;
    float: right;

}
</style>

</head>

<body>

<input type="button" value="點擊" class="btn">
<div class="pop_con">
    <div class="pop1">
        彈框文字
        輸入顏值:
        <input type="text" name="" id="b01">
        <a href="#" class="close" id="off">x</a>
    </div>
    <div class="pop2"></div>
</div>

</body>
</html>

jQuery事件

8.事件委托

事件委托就是利用冒泡的原理,把事件加到父級上,通過判斷事件來源的子集,執(zhí)行相應(yīng)的操作,事件委托首先可以極大減少事件綁定次數(shù),提高性能,其次可以讓新加入的子元素也可以擁有相同的操作

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>事件委托</title>
<script type="text/javascript" src="../jQuery庫/jquery-3.3.1.min.js"></script>
<script type="text/javascript">

$(function(){

    //普通寫法,性能不高,新加入的li需要重新綁定
    $('.list li').click(function(){
        $(this).css({'backgroundColor':'red'});
    })

    /*
    var $li = $('<li>9</li>')
    $('.list').append($li);
    */
    /*重新綁定,$li.click(....)*/

    /*事件委托,父級list受委托,li的委托,click事件,函數(shù)*/
    $('.list').delegate('li','click',function(){
        $(this).css({'backgroundColor':'red'});
    })
    /*事件委托不用重新綁定*/
    var $li = $('<li>9</li>')
    $('.list').append($li);

})
</script>

<style type="text/css">

.list{
    width: 500px;
    height: 400px;
    background-color: antiquewhite;
    text-align: center;
    list-style: none;
    padding: 0;
}
.list li{
    width: 500px;
    height: 40px;
    background-color: aquamarine;
    margin: 10px auto;

}
</style>

</head>

<body>

<ul class="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
</ul>

</body>
</html>

jQuery事件

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI