jQuery个人学习笔记(三)

注:此文只是适用于个人学习笔记

参考书籍:jQuery基础教程(第四版)点击下载

3.1 在页面加载后执行任务

(1)通过$(document).ready()注册的事件处理程序,则会在DOM完全就绪并可以使用时调用。虽然这也意味着所有元素对脚本而言都是可以访问的,但是,却不意味着所有关联的文件都已经下载完毕

(2)由于很多库都使用$标识符(因为它简短方便),因此就需要一种方式来避免名称冲突。

jQuery提供了一个jQuery.noConflict()方法,调用该方法可以把对$标识符的控制权让渡还给其他库。

<script src="jquery.js"></script>
<script>
jQuery.noConflict();
jQuery(document).ready(function($) {
    //在这里,可以正常使用!
});
</script>

3.2 处理简单的事件

(1)多次调用.on()也没有任何问题

$(document).ready(function() {
    $('#switcher-default').on('click', function() {
        $('body').removeClass('narrow');
        $('body').removeClass('large');
    });
    $('#switcher-narrow').on('click', function() {
        $('body').addClass('narrow');
        $('body').removeClass('large');
    });
    $('#switcher-large').on('click', function() {
        $('body').removeClass('narrow');
        $('body').addClass('large');
    });
});

3.3 事件传播

(1).hover()方法接受两个函数参数。第一个函数会在鼠标

指针进入被选择的元素时执行,而第二个函数会在鼠标指针离开该元素时触发 

$(document).ready(function() {
    $('#switcher h3').hover(function() {
        $(this).addClass('hover');
    }, function() {
        $(this).removeClass('hover');
    });
});

(2)允许多个元素响应单击事件的一种策略叫做事件捕获。在事件捕获的过程中,事件首先会交给最外层的元素,接着再交给更具体的元素。

(3)事件冒泡:即当事件发生时,会首先发送给最具体的元素,在这个元素获得响应机会之后,事件会向上冒泡到更一般的元素。 事件冒泡可能会导致始料不及的行为,特别是在错误的元素响应mouseovermouseout事件的情况下。

3.4 通过事件对象改变事件的旅程

(1)事件对象是一种DOM结构,它会在元素获得处理事件的机会时传递给被调用的事件处理程序。这个对象中包含着与事件有关的信息(例如事件发生时的鼠标指针位置),也提供了可以用来影响事件在DOM中传递进程的一些方法。

(2)通过.target,可以确定DOM中首先接收到事件的元素(即实际被单击的元素)。而且,我们知道this引用的是处理事件的DOM元素 

$(document).ready(function() {
    $('#switcher').click(function(event) {
        if (event.target == this) {
            $('#switcher button').toggleClass('hidden');
        }
    });
});

(3)通过调用event.stopPropagation()就可以避免其他所有DOM元素响应这个事件

(4)如果我们把单击事件处理程序注册到锚元素( <a>),而不是外层的<div>上,那么就要面对另外一个问题:当用户单链接时,浏览器会加载一个新页面。这种行为与我们讨论的事件处理程序不是同一个概念,它是单击锚元素的默认操作。类似地,当用户在编辑完表单后按下回车键时,会触发表单的submit事件,在此事件发生后,表单提交才会真正发生。

即便在事件对象上调用.stopPropagation()方法也不能禁止这种默认操作,因为默认操作不是在正常的事件传播流中发生的。在这种情况下, .preventDefault()方法则可以在触发默认操作之前终止事件

(5).is()。这个方法接收一个选择符表达式(第2章介绍过),然后用选择符来测试当前的jQuery对象。如果集合中至少有一个元素与选择符匹配, .is()返回true


3.5 

猜你喜欢

转载自blog.csdn.net/qq_36797286/article/details/80358511
今日推荐