jQuery开发中容易忽视的错误

1、引用jQuery库文件的<script>标签,必须放在引用自定义脚本文件的<script>标签之前,否则,就会发生找不到对象;最好在<head>元素中,把引入样式表的<link />放在<script>标签前面;有时候其他的javascript库也会用$符号,为了不冲突,可以使用.noConflict()方法把控制权交给别的库.
    <script src="prototype.js" type="text/javascript" />
    <script src="jquery.js" type="text/javascript" />
    <script type="text/javascript">
        jQuery.noConflict();
    </script>
    <script src="myjs.js" type="text/javascript"/>
    在使用jquery方法时,必须使用jquery代替$来调用。

2、基本选择符:标签名,${"p"};ID选择符,${"#idname"};类选择符,${".classname"}。

3、css选择符,举个例子来说
    $(document).ready(function(){
        $("#aSelect > li").addClass("aClass");
        $("#aSelect li:not(.aClass)").addClass("otherClass");
    });
    上面第二行中的>就是元素组合符,查找ID为aSelect的元素的子元素(>)中所有的列表项。这个子元素,不包含孙元素。
    上面第三行中的aSelect li,表示查找ID为aSelect的元素的所有下级列表项,包含孙元素。

4、属性选择符:$("img[alt]")就是选择所有带有alt属性的图像元素;另外,属性选择符允许以类似正则表达式的语法来标识字符串的开始(^)和结尾($),而且,也可以使用(*)表示位于字符串中任意位置的值,适用(!)来表示相反的值。
    e.g.:
    $(document).ready(function(){
        $("a[href^=mailto:]").addClass("mailto");

$("a[href$=.pdf]").addClass("pdflink");

$("a[href^=http][href*=henry]").addClass("henrylink");

});

5、自定义选择符,语法与css中的伪类选择符语法相同,以一个冒号开头,比如,我们要从某个集合里面选择第一项,可以使用下面的代码:
    $("a[href^=http]:eq(0)")...        
    $("div:first-child")...
    另外两个比较常用的自定义选择符是:odd和:even,分别对应选择奇数行和偶数行。
    $("table tr:odd").addClass("odd");
    $("table tr:even").addClass("even");
    猜猜看:$("td:contains(a)").css("color","red");这会有什么效果?

6、基于表单的选择符,简单列举一下吧,有心人通过练习会明白的。
    :text    :checkbox    :radio    :image    :submit    :reset    :password    
    :file    :input    :button    :enabled    :disabled    :checked    :selected
    这些选择符可以链式使用,比如$(‘:radio:checked‘),$(‘:text:enabled‘)等等。

7、.find()和.filter()的相同点和区别,他们都是遍历元素,区别就是find是对子集操作,filter是对自身集合元素操作。比如
        var $find=$("div").find(".name"); 是对class为name的div内的元素操作,
        var filter=$("div").filter(".name");是对所有class为name的div进行操作。

8、.next()下一个同辈元素;.nextAll()下面所有的同辈元素;
    .prev()上一个同辈元素;.prevAll()上面所有的同辈元素;
    .siblings()所有的同辈元素;.andself()包含自己;
    .parent()父元素;.children()子元素;
    .end()恢复最近依次破坏性对匹配元素集合的操作,返回到之前的匹配元素集合状态,返回匹配元素集合。

9、jQuery为标准的DOM事件都提供了相应的简写事件方法:
    .blur    .change    .click    .dbclick    .error    .focus    .keydown    .keypress    .keyup    .load    .select    .scroll
    .mousedown    .mouseover    .mouseout    .mousemove    .mouseup    .resize    .submit    .unload

10、复合事件
    .toggle(fun1,fun2,fun3...)参数都是函数,第一次点击执行fun1,第二次点击执行fun2,依次类推,执行完以后,重新回到fun1开始。
    .hover(fun1,fun2),当鼠标移动到一个匹配元素上面时(over),会触发指定的第一个函数。当鼠标移出这个元素时(out),会触发指定的第二个函数。

11、尽管解释起来很难,但是想象起来却很容易,div里面的一个元素被点击了,但是我们只想执行div的点击事件:(感兴趣的去了解事件捕获和事件冒泡)
    $(document).ready(function(){
        $("#divId").click(function(event){
            if(event.target==this){
                这里是事件执行代码...
            }
        });
    });
    另外还有直接阻止事件冒泡的方法.stopPropagation()

$(document).ready(function(){
        $("#divId .button").click(function(event){
                这里是事件执行代码...
                event.stopPropagation();
        });
    });
    在这里我要说的是,上面两个例子,分别对应的是事件捕获和事件冒泡,不是一回事。

12、移除事件处理程序,直接看代码,很直观
    $(function(){
        $("#largeDiv").click(function(event){
            事件处理代码
        });
        $("#largeDiv-firstChild").click(function(){
            $("#largeDiv").unbind("click");
        });
    });
    但是如果click里面的代码,有一部分要执行,有一部分不执行怎么办呢,.unbind()只能全部移除,其实,是可以解决的,给事件起个别名就好了

$(function(){
        $("#largeDiv").bind(‘click.first‘,function(event){
            第一个事件处理代码
        });

$("#largeDiv").bind(‘click.second‘,function(event){
            第二个事件处理代码
        });

$("#largeDiv-firstChild").click(function(){
            $("#largeDiv").unbind("click.first");
        });
    });

13、类似.bind(),.one()只执行一次,还有.trigger(‘click‘)是模仿用户点击的事件,.trigger()方法提供了一组与bind方法相同的简写,但是结果不一样,只是触发操作而不是绑定行为:$("#divname").click();

14、.show()    .hide()    .fadeIn()    .fadeOut()可以用不同的形式来实现展示和隐藏效果。具体自己研究吧,比较简单。

jQuery开发中容易忽视的错误

时间: 2024-10-07 02:06:22

jQuery开发中容易忽视的错误的相关文章

SQL开发中容易忽视的一些小地方( 三)

原文:SQL开发中容易忽视的一些小地方( 三) 目的:这篇文章我想说说我在工作中关于in和union all 的用法. 索引定义 : 微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonclustered index,也称非聚类索引.非簇集索引). SARG的定义:用于限制搜索的一个操作,因为它通常是指一个特定的匹配,一个值得范围内的匹配或者两个以上条件的AND连接.形式如下: 列名 操作符 <常数 或 变量>或<

SQL开发中容易忽视的一些小地方(一)

原文:SQL开发中容易忽视的一些小地方(一) 写此系列文章缘由: 做开发三年来(B/S),发现基于web 架构的项目技术主要分两大方面: 第一:C#,它是程序的基础,也可是其它开发语言,没有开发语言也就不存在应用程序. 第二:数据库,现在是信息化世界,大多数信息都可以通过数据库存储来交换信息.常与应用程序互相交流信息. 但在SQL开发应用时,我们往往只观注些常用的方法(insert delete select update),对些小细节方面(系统存储过程,函数的应用,优化分析)研究的并不多或者是

ios开发中遇到的编译错误总结

1:Undefined symbols for architecture arm64: ? 1 2 3 <code>Undefined symbols for architecture arm64:   "_OBJC_CLASS_$_FBSession", referenced from: someFile ld: symbol(s) not found for architecture arm64</code> 解决: project -> target

SQL开发中容易忽视的一些小地方(四)

原文:SQL开发中容易忽视的一些小地方(四) 本篇我想针对网上一些对于非聚集索引使用场合的某些说法进行一些更正. 下面引用下MSDN对于非聚集索引结构的描述. 非聚集索引结构: 1:非聚集索引与聚集索引具有相同的 B 树结构,它们之间的显著差别在于以下两点: * 基础表的数据行不按非聚集键的顺序排序和存储. * 非聚集索引的叶层是由索引页而不是由数据页组成. 2:非聚集索引行中的行定位器或是指向行的指针,或是行的聚集索引键,如下所述: * 如果表是堆(意味着该表没有聚集索引),则行定位器是指向行

SQL开发中容易忽视的一些小地方(二)

原文:SQL开发中容易忽视的一些小地方(二) 目的:继上一篇:SQL开发中容易忽视的一些小地方(一) 总结SQL中的null用法后,本文我将说说表联接查询. 为了说明问题,我创建了两个表,分别是学生信息表(student),班级表(classInfo).相关字段说明本人以SQL创建脚本说明: 测试环境:SQL2005 CREATE TABLE [dbo].[student]( [ID] [int] IDENTITY(1,1) NOT NULL, [sUserName] [nchar](10) C

SQL开发中容易忽视的一些小地方(五)

原文:SQL开发中容易忽视的一些小地方(五) 背景: 索引分类:众所周知,索引分为聚集索引和非聚集索引. 索引优点:加速数据查询. 问题:然而我们真的清楚索引的应用吗?你写的查询语句是否能充分应用上索引,或者说你如何设计你的索引让它更高效? 经历:以前本人只知道索引的好处,但是是否能够真正让它发挥作用,并无太多理论,为些本人做了些DEMO,来简单说明下什么情况下才能充分利用索引. 案例: 这里建立一个学生表:有如下字段,此时表中没有建立任何索引. CREATE TABLE [dbo].[stud

敏捷开发中的10大错误认识

敏捷开发中的10大错误认识 原文:http://www.computerweekly.com/opinion/The-top-10-myths-about-agile-development 作者:Peter Measey 译者:张某人ER  http://blog.csdn.net/xinxing__8185/article/ 摘要:对于快速发展的敏捷软件开发领域,本文将对其最常见的错误认识进行分析. 在如今全球市场的背景下,如何可以灵活变通,对于一个企业来讲,已然变得至关重要,因此,IT系统

Android开发中出现的低级错误之没有android jar包

The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files 解决办法:相应的系统的jar包没有导入:选add External JARs...,添加android.jar. 为什么导入工程时候,android.jar包没有导入进来?现象就是所有工程都有问题. 解决办法:在系统的环境变量Path中增加E:\adt-bundle-windows-x86-201

App开发中这些不能忽视的问题

随着现在移动互联网的发展,智能手机的普及,手机App应用在我们的生活中的作用越来越重要.很多企业也想进军互联网,App开发无疑是一个连接用户最好的桥梁.所以大家都会咨询广州App开发品向科技,下面小编为大家分享一些在App开发中不能忽视的问题. 1.一致,一致,还是一致 你能做的最重要的事情就是保证用户界面运作的一致性.对于列表框来说,如果双击其中的项,使得某些事件发生,那么双击任何其它列表框中的项,都应该有同样的事件发生.所有窗口按钮的位置要一致,标签和讯息的措辞要一致,颜色方案要一致.用户界