jquery函数设计

Jquery设计文档

Author:xu_shuyi

2015-03-24 08:32:30

1.window.onload与$(document).ready()

window.onload :必须等待网页中所有的内容加载完毕后(包括图片)才能执行,并且不能编写多个。

$(document).ready():网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没有加载完,并且能够编写多个。

2.解决jquery库与其他库之间冲突

var $j = jQuery.noConflict();//自定义一个快捷方式

$j(function(){

$j("p").click(function(){

alert($j("p").text());

});

});

3.Jquery中的DOM操作

3.1查找节点

3.1.1查找元素节点

/**

* 获取元素节点并打印文本内容

* <ul>

* <li title="apple">apple</li>

* </ul>

* @param {Object} "ul li:eq(1)"

*/

$(function(){

var $li_text = $("ul li:eq(0)").text();

var $li_html = $("ul li:eq(0)").html();

alert($li_text);

alert($li_html);

});

3.1.2查找属性节点

/**

* 获取属性节点并打印文本内容

* <p title="选择你最喜欢的水果.">选择你最喜欢的水果.</p>

* @param {Object} "ul li:eq(1)"

*/

$(function(){

var $para_attr = $("p").attr("title");

alert($para_attr);

});

3.1.3创建节点

/**

* 创建元素,文本,属性节点

* <ul>

* <li title="apple">apple</li>

* </ul>

* @param {Object} "<li title = ‘banana‘>banana</li>"

*/

$(function(){

var $li_1 = $("<li title = ‘banana‘>banana</li>");

var $li_2 = $("<li title = ‘aire‘>aire</li>");

$("ul").append($li_1);

$("ul").append($li_2);

});

3.1.4插入节点


append()


向每个匹配的的元素内部追加内容


appendTo()


将所有匹配的元素追加到指定的元素中


var $li_1 = $("<li  title=‘banana‘>banana</li>");

$li_1.appendTo("ul li:eq(0)");


prepend()


向每个匹配的元素内部前置内容


var $li_1 = $("<li title =‘banana‘>banana</li>");

$("ul").prepend($li_1);


prependTo()


将所有匹配的元素前置到指定的元素中


var $li_1 = $("<li title =‘banana‘>banana</li>");

$li_1.prependTo("ul");


after()


向每个元素之后插入内容


var $li_1 = $("<li title =‘banana‘>banana</li>");

$("ul li:eq(0)").

after($li_1);


insertAfter()


将所有匹配的元素插入到指定元素的后面


var $li_1 = $("<li title =‘banana‘>banana</li>");

$li_1.insertAfter("ul li:eq(0)");


before()


在每个元素之前插入内容


var $li_1 = $("<li title =‘banana‘>banana</li>");

$("ul li:eq(0)").

before($li_1);


insertBefore()


将所有匹配的元素插入到指定的元素之前


var $li_1 = $("<li title =‘banana‘>banana</li>");

$li_1.insertBefore("ul li:eq(0)");

3.1.5删除节点

/**

* remove()方法

* <ul>

* <li title="apple">apple</li>

* <li title="apple">apple</li>

* </ul>

*/

$(function(){

$("ul li:eq(1)").remove();

});

/**

* 将<li>元素中属性title不等于“banana”的<li>元素删除

* @param {Object} "ul li"

*/

$(function(){

$("ul li").remove("li[title!=banana]");

});

/**

* 清空元素中的内容

* @param {Object} "ul li"

*/

$(function(){

$("ul li:eq(1)").empty();

});

3.1.6复制节点

/**

* 复制当前单击的节点,并将其追加到<ul>元素中

* clone(true):注意true

* 在clone()方法中传递了一个参数true,他的含义是复制元素的同时复制元素所绑定的事件

* @param {Object} "ul li"

*/

$(function(){

$("ul li").click(function(){

$(this).clone(true).appendTo("ul");

});

});

3.1.7替换节点

/**

* <p title="选择你最喜欢的水果.">选择你最喜欢的水果.</p>

* @param {Object} "p"

*/

$(function(){

$("p").replaceWith("<strong>你最不喜欢的水果是?</strong>");

});

/**

* <p title="选择你最喜欢的水果.">选择你最喜欢的水果.</p>

* @param {Object} "p"

*/

$(function(){

$("<strong>你最不喜欢的水果是?</strong>").replaceAll("p");

});

3.1.8包裹节点

/**

* 用b标签把strong元素包裹起来

* @param {Object} "strong"

*/

$(function(){

$("strong").wrap("<b></b>");

//将所有匹配的元素用一个元素来包裹

$("strong").wrapAll("<b></b>");

//将每一个匹配的元素的子内容(包含文本节点)用其他结构化的标价包裹起来

$("strong").wrapInner("<b></b>");

});

3.2属性操作

3.2.1获取属性,设置属性和删除属性

/**

* 获取属性,设置属性和删除属性

* @param {Object} "p"

*/

$(function(){

var $para = $("p").attr("title");

alert($para);

$("p").attr("title","my title");

//将一个 名/值 形式的对象设置为匹配元素的属性

// $("p").attr({"title":"my title","name":"my name"});

$("p").removeAttr("title");

});

3.3样式操作

3.3.1追加样式

/**

* jquery提供了专门的addClass来追加样式

* @param {Object} "input:eq(0)"

*/

$(function(){

$("input:eq(0)").click(function(){

$("p").addClass("another");

});

});

3.3.2样式切换

/**

* 切换样式,toggle()方法此处的作用是交替执行代码 3 4 两个函数

* 如果元素是显示的,则隐藏它;如果是隐藏的,则显示它

* <p class="another" style="display:none" title="选择你最喜欢的水果.">选择你最喜欢的水果.</p>

* <input name="uname" value="xushuyi"/>

* @param {Object} "input:eq(0)"

*/

$(function(){

$("input:eq(0)").click(function(){

$("p").toggle(function(){

//显示 3

},function(){

//隐藏 4

});

});

});

/**

* 样式的切换

* 当点击"切换样式"按钮后,在原样式的基础上追加high样式

* 再次点击"切换样式"按钮后,又恢复到原样式

* @param {Object} "p"

*/

$(function(){

$("input:eq(0)").click(function(){

$("p").toggleClass("high");

});

});

3.4设置、获取HTML、文本和值

3.4.1html()方法

/**

* 类似于javascript中的innerHTML属性

* 用来读取或设置某个元素中的HTML内容

* @param {Object} "p"

*/

$(function(){

var $p_html = $("p").html();

alert($p_html);

//设置P元素中的代码

$("p").html("<strong>选择你最喜欢的水果.</strong>");

});

3.4.2text()方法

/**

* 类似于javascript中的innerText属性

* 用来读取或设置某个元素中的HTML内容

* @param {Object} "p"

*/

$(function(){

var $p_text = $("p").text();

alert($p_text);

//设置P元素中的文本内容

$("p").text("<strong>选择你最喜欢的水果.</strong>");

});

3.4.3val()方法

/**

* focus()方法相当于javascript中的onfocus()方法,处理获取焦点事件

* blur()方法相当于javascript中的onblur()方法,处理失去焦点事件

* @param {Object} "#address"

*/

$(function(){

$("#address").focus(function(){

var $text = $(this).val();

if($text=="请输入邮箱地址!"){

$(this).val(‘‘);

}

});

$("#address").blur(function(){

var $text = $(this).val();

if($text==‘‘){

$(this).val("请输入邮箱地址!");

}

});

});

/**

* <select id="single">

* <option>选择1号</option>

* <option>选择2号</option>

* <option>选择3号</option>

* </select>

* <select id="multiple" multiple="multiple" style="height:120px;">

* <option>选择1号</option>

* <option>选择2号</option>

* <option>选择3号</option>

* </select>

* @param {Object} "#single"

*/

$(function(){

$("#single").val("选择2号");

$("#multiple").val(["选择1号","选择3号"]);

});

3.4事件的绑定

/**

* 在文档加载完成后,如果打算为元素绑定事件来完成某些操作,可以使用bind()方法

* 来对匹配元素进行特定事件的绑定

* unbind()方法,为删除绑定事件:

* $("input:eq(0)").unbind("click",fun);

* $("input:eq(0)").bind("click");

* @param {Object} "input:eq(0)"

*/

$(function(){

$("input:eq(0)").bind("click",fun);

});

function fun(){

alert("我是绑定事件!");

}

/**

* 体现bind()方法的用法

* <div id="panel">

<h5 class="head">什么事jquery?</h5>

<div class="content" style="display:none">

jquery是继Prototype之后又一个优秀的javascript库。

</div>

</div>

* @param {Object} "#panel h5.head"

*/

$(function(){

$("#panel h5.head").bind("click",function(){

$(this).next("div.content").show();

});

});

3.5合成事件

3.5.1hover()光标悬停

/**

* hover()方法的用法:hover(enter,leave)

* 用来模拟光标悬停事件,当光标移动到元素上时,会触发指定的第一个函数

* 当光标移除这个元素时,会触发第二个函数

* <div id="panel">

<h5 class="head">什么事jquery?</h5>

<div class="content" style="display:none">

jquery是继Prototype之后又一个优秀的javascript库。

</div>

</div>

* @param {Object} "#panel h5.head"

*/

$(function(){

$("#panel h5.head").hover(function(){

$(this).next("div.content").show();

},function(){

$(this).next("div.content").hide();

});

});

3.5.2mouse()光标滑过

/**

* 当光标滑过“标题”链接时,相应内容被显示

* 当光标滑出“标题”链接后,相应内容被隐藏

* <div id="panel">

<h5 class="head">什么事jquery?</h5>

<div class="content" style="display:none">

jquery是继Prototype之后又一个优秀的javascript库。

</div>

</div>

* @param {Object} "#panel h5.head"

*/

$(function(){

$("#panel h5.head").mouseover(function(){

$(this).next("div.content").show();

});

$("#panel h5.head").mouseout(function(){

$(this).next("div.content").hide();

});

});

3.6绑定事件

时间: 2024-10-10 12:49:44

jquery函数设计的相关文章

Jquery源码---读《uqery技术内幕,深入解析Jquery架构设计与实现原理》

前两个月项目组特别忙了,买了一本<Juqery技术内幕,深入解析Jquery架构设计与实现原理>一直放着睡大觉:进入八月份项目终于过了TR5点,算是可一个喘口气:这本书终于有时间拜读一下.下面的一两个月我将每天坚持看几页,并陆陆续续写几篇不伦不类的技术博客,谈谈自己的心得体会等等. 首先评价一下这本书吧,我本来想买<锋利的Jquery>,但是电子版翻了一下,感觉还是有点基础了:就在网上找找呀,终于看到了这本---<Juqery技术内幕,深入解析Jquery架构设计与实现原理&

jQuery架构设计与实现(2.1.4版本)

市面上的jQuery书太多了,良莠不齐,看了那么多总觉得少点什么 对"干货",我不喜欢就事论事的写代码,我想把自己所学的知识点,代码技巧,设计思想,代码模式能很好的表达出来,所以考虑通过分析jQuery的源码库的方式来表达,尽力做最好 内容结构还在不断的修正,欢迎给出建议 ps:写了数万字,因项目太忙,暂停下 https://github.com/JsAaron/jQuery 本书围绕的几个核心点: 设计理念 结构组织 抽象设计 模式运用 场景套用 第一章:理解架构 1.1 我们真正会

js函数设计原则

一般认为函数指具有返回值的子程序,过程指没有返回值的子程序.C++中把所有子程序成为函数,其实那些返回值为void的 函数在语义上也是过程.函数与过程的区别更多是语义上的区别,而不是语法的区别. 语言纯化论者认为一个函数应该只有一个返回值,这和数学函数一样.即函数只接受输入(参数),通过参数运算返回结果. 除此之外的效果被称为函数的副作用,比如修改全局变量. function sum1(x, y) { return x+y }function sum2(x, y) { alert(x+y) }s

Python函数设计原则

在任何编程语言中,函数的应用主要出于以下两种情况: 代码块重复,这时候必须考虑用到函数,降低程序的冗余度 代码块复杂,这时候可以考虑用到函数,增强程序的可读性 当流程足够繁杂时,就要考虑函数,及如何将函数组合在一起.在Python中做函数设计,主要考虑到函数大小.聚合性.耦合性三个方面,这三者应该归结于规划与设计的范畴.高内聚.低耦合则是任何语言函数设计的总体原则. 如何将任务分解成更有针对性的函数从而导致了聚合性 如何设计函数间的通信则又涉及到耦合性 如何设计函数的大小用以加强其聚合性及降低其

java jquery 函数多参数传递

业务需求: 名次   伙伴 业绩 签单 面谈 每日目标 1 文彬 5100 6 10 查看目标 2 马红月 4550 4 6 查看目标 3 王刚 4100 3 9 查看目标 4 郭亚凯 3450 4 9 查看目标 5 王洪良 3300 3 7 查看目标 6 袁凯 2200 2 4 查看目标 7 王兆阳 2100 3 6 查看目标               每日目标    文彬 2014-06-13    15号前 争取业绩到达6000以上...    加油 加油 2014-06-12昨天打了1

函数设计应做到低耦合,高内聚

最近,同项目组的一位师姐请产假了,由我接手她之前的部分版本的开发工作.在开发的过程中,我阅读了某个很古老的版本的程序代码,心生感触,想在这里啰嗦几句. 该版本中很多函数的调用关系都错综复杂,让人读起来非常的费劲.我用如下的图来形象化地表示这种函数之间的调用关系. 箭头的指向为调用关系,如"函数A"调用了"函数B"."函数C"."函数D"."函数E"."函数F",以此类推. 当函数之间的调

回调函数设计方法

引入: 你显示器不亮了,你不知道怎么弄,那你就问在外地干IT的大表哥,你大表哥告诉你修理的方法,然后需要你自己来操作. 你大表哥知道怎么弄,但是自己不去弄,而是由你去弄. 换句话说,你大表哥实现了修理你显示器的方法,但他不会自己去调用,而是由你去调用.那么你大表哥告诉你的修机器的方法就是回调函数. 在这个比喻里,你自己 作为主调方,有实际的需求--修显示器,但是没有方法,求教表哥的时候,表哥给你的方法 就是一个 函数地址,当你按照大表哥的方法执行的时候,就是 执行了一个回调函数了. 在工程设计中

jquery函数写法

普通jquery函数写法 <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script type="text/javascript"> $(function(){ var myfunc = { aaa: 0, init:function(aaa) { this.aaa=aaa; }, log:function(msg) { if( (EpBr

Jquery中淡入淡出效果fadeIn()、fadeOut()、fadeToggle()、fadeTo()学习引发的思考----关于Jquery函数传参数

一.基本语法 1.fadeIn淡入.fadeOut淡出.fadeToggle淡入淡出切换(已经淡出点击淡入,或者相反): $(selector).fadeIn(duration,complete); $(selector).fadeOut(duration,complete); $(selector).fadeToggle(duration,complete); 可选的 speed 参数规定效果的时长.它可以取以下值:"slow"(200ms)."fast"(600