A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 大山哥哥 于 2017-9-25 16:05 编辑

        在我们的课程中讲到过jQuery大多数的常规语法和用途,基本能够满足我们开发的需求,但是除了这些基本用法之外,jQuery里还有一些我们平常不太注意的用法,在这里简单的做一个介绍,希望同学们能够融会贯通,进一步提升自己的编码水平。
        1、禁用页面右键菜单:有一些页面出于信息保护考虑,会禁用掉用户的右键菜单。
[JavaScript] 纯文本查看 复制代码
// 禁用右键
                        $(function() {
                                        $(document).bind("contextmenu", function(e) {
                                        return false;
                                });
                        });

        2、快速回到顶部:当页面内容很多的时候,有时候浏览到底部的时候手动上滚很费时间,可以设置一个快速回到顶部的按钮或者超链接,让用户点击后回到页面开始的位置,实际上是做了一个动画。
[JavaScript] 纯文本查看 复制代码
// 返回顶部
                        $(function(){
                                $(".top").click(function () {
                                        $(document.body).animate({scrollTop: 0}, 800);
                                });
                        });

       3、jQuery的选择器很灵活,如果一个选择器(例如类选择器,元素选择器等)可以选中多个元素,也就是找到的是一个元素的集合,当我们调用函数的时候,相当于遍历了集合里的每个元素分别调用了函数,所以可以省掉不必要的each语句。例如,下面代码中的两个操作是等价的。
[JavaScript] 纯文本查看 复制代码
$(function(){
                                $("div").html("test");
                                $("div").each(function(){
                                        $(this).html("test");
                                });
                        });
        4、jQuery中的事件函数都有两种用法,一种是传参数,一种不传参数。传function参数代表给某个事件绑定回调函数,这个是我们经常用的;不传参数直接调用是触发元素的事件。例如,$("#div1").click()的作用是触发div1的点击事件。而$("#div1").click(function(){//do something})是当div1被点击的时候执行一段逻辑。通常我们可以用$("form").submit()来提交表单。
        5、如果想要批量的判断当前页面中的链接是否是一个外部链接,可以使用hostname属性,然后修改超链接的属性。
[JavaScript] 纯文本查看 复制代码
<ul id="links"> 
   <li><a href="demo1.html">The previous tip</a></li> 
   <li><a href="./demo2">The next tip</a></li>
   <li><a href="http://www.baidu.com/">百度</a></li> 
</ul>

// 遍历所有链接
$('#links a').each(function(){

    if(this.hostname != location.hostname){
        // 这是一个外部链接
        $(this).append('<img src="error.jpg" />')
               .attr('target','_blank');
    }

});

        6、如果我们不希望一段文本被别人选中并复制粘贴,可以禁用掉文本的可选中属性。例如一个p标签里写了一段文字,我们不想让用户复制,可以这么写代码来屏蔽掉用户的操作。
[JavaScript] 纯文本查看 复制代码
$(function(){
                $("p").attr("unselectable", "on")
                           .css("user-select", "none")
                           .on("selectstart", false);
                  });

        7、如果想阻止浏览器事件执行默认行为,例如超链接跳转等,可以使用到事件绑定的function中的event参数进行拦截。
[JavaScript] 纯文本查看 复制代码
$("a").click(function (e) {
e.preventDefault();
});

        8、属性选择器可以并列选择多个属性,不仅仅只能写一个中括号来进行选择。例如有这么两个div:
[JavaScript] 纯文本查看 复制代码
<div aaa="111" bbb="222">aaaaa</div>
                <div bbb="222">bbbbb</div>

        我们想找到第一个div,就可以这么来写选择器:
[JavaScript] 纯文本查看 复制代码
$(function(){
                          $("div[aaa='111'][bbb='222']").html("test");
                  });

        9、监听不存在的元素上的事件,jQuery拥有一个先进的事件处理机制,通过on()方法可以监听还不存在的事件。 这是因为on方法可以传递一个元素的子元素选择器作为参数。例如我们有如下一个列表:
[JavaScript] 纯文本查看 复制代码
<ul id="testList"> <li>Old</li> <li>Old</li> <li>Old</li> <li>Old</li> </ul>

        我们可以使用下面的代码来添加一个新的li标签到列表,并且设置点击事件。
[JavaScript] 纯文本查看 复制代码
$(function(){
                          var list = $('#testList');
                                list.on('click','li',function(){
                                    $(this).remove();
                                });
                                list.append('<li>这是通过API添加的条目,点击消失</li>');
                  });
        10、如果一个事件你只想让它触发一次,然后失效,就可以使用one函数。
[JavaScript] 纯文本查看 复制代码
$("#button1").one("click",function(){
                                    alert("点一次之后点击事件就失效了");
                                });


        OK,灵活运用这些小技巧,可以帮助你处理一些比较特殊的需求,节省很多时间,希望这些小技巧可以帮助到大家。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马