这里记录一些关于jquery的一些知识。这里面主要是$().method方法的书写框架以及jquery中each函数的使用。等待太久得来的东西,多半已经不是当初想要的样子了。

一、基于$().method方法的书写

一、框架的写法

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="../jquery-3.1.0.js"></script>
<script type="text/javascript" src="js/app2.js"></script>
<script type="text/javascript">
function pageTest() {
$("#page").paginate({
alert: "hello world",
onchange: function(str) {
alert(str);
}
});
}
function eachTest() {
$("ul li").each(function( index ) {
   console.log( index + ": " + $(this).text() );
});
}
</script>
</head>
<body>
<div id="page">Hello World</div>
<button onclick="pageTest()">click me page</button>
<button onclick="eachTest()">click me each</button>
<ul>
<li>foo</li>
<li>bar</li>
</ul>
</body>
</html>

二、app2.js的代码:

(function($) {
$.fn.paginate = function(options) {
var opts = options;
return this.each(function() {
$this = $(this);
$.fn.draw(opts, $this);
});
};
$.fn.draw = function(data, obj) {
data.onchange(data.alert);
};
})(jQuery);

三、运行的效果如下:

  • 点击click me page按钮,弹出hello world的alert框。
  • 点击click me each按钮,控制台打印0: foo 1: bar字样。

二、简单路由的实现

一、主页面的代码huhx3.html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="../jquery-3.1.0.js"></script>
<script type="text/javascript" src="js/app3.js"></script>
</head>
<body>
<ul>
<li><a href="#/">首页</a></li>
<li><a href="#/product">产品</a></li>
<li><a href="#/server">服务</a></li>
</ul>
<div id="content"></div>
</body>
</html>

其中测试中包含的两个碎片页如下:

  • page.html:
<div style="color: red">Hello World</div>
  • product.html:
<div style="background-color: #CCCCCC; text-shadow: 2px 2px 4px red">I love you.</div>

关于js的代码如下:app3.js

function load() {
var url = window.location.href;
// get the router
var index = url.indexOf("#");
var routeUrl = url.substring(index, url.length);
alert("routeUrl: " + routeUrl);
// 比较Router对象,加载页面
if (routeUrl == "#/server") {
$("#content").load("page.html");
} else if (routeUrl == "#/product") {
$("#content").load("product.html");
} else {
$("#content").load("<span>胡红翔</span>");
}
} window.addEventListener('hashchange', function() {
load();
}, false);

二、运行效果如下:注意到url点击两次,并没有触发hashchange事件。下面我们说一下这个事件,了解这样实现的缺点。

aaarticlea/gif;base64,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ECNKnEixosWLGDNq3MixI8cIXSycsOKAYIQJEjiCcGHBo8uXMGPKnEmzps2bOHPqrDnSAQg0GAhW6FBy48qWD0+m3Mm0qdOnUKNKnUp1508MFSgUzKBVJUuISquKHUu2rNmzaNMarJCgrdsEKQSegBF3aJgNbeMCuBACVQKtc9sSHcg2QYcwLMMK5CrwZFsKIPDmVUu5suXLmDNbvpAyg16BfIOyDSFaRssLCZZGXnphMNu4c00rBsD4ZFdIFmZr3s27t+/fwJOG7DlQcQXTjVHuHUybdPLOXQEcz618sdahRZ8H3869u/fvUR2//03g/KhA7AMZhwagm+vcz0dnM2Zssjr4+/jz69/v8GpWgvRJxxxtWq3XHgXvDRSfffNFpx1/EEYo4YS9/cfZQAmehxx7yq1HYHEozXYBcvTZtpdzIC5F4YostuiiU5yBhJSA2Y0WVGsleQhCIKwNNmJLkSGH415/ATBXV2NQ5+CLTDbp5JMb6TZUKoIV5SEAO7aFIpGGIdaSeBTQF1hq500G5Zlopqmmgl8RNuCacMYp55wZZbAljXTmqeeefCqEXp+ABirooIQWauihiCaq6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qiklmrqqaimquqqrLbq6quwxv8q66y01mrrrbjmquuuvPbq66/ABivssMQWa+yxyCar7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zxxRhnrPHGHHcMZxlKeCxyTB6YkF1BHhyg8soskzDyywKlzPLMLJsMgAdABFWQEEe4DPPPPPs8ECUG4awzQUH/rLQHeLAwECdNo5yzQUkr/XMnTt9sM8o0t2y1yCj00vXMId889c49f+0xCi2crPbbC7Ht9kEjvFCzA3XfDXfGcjP/VLfPco9gRNYlz723xGwP4fcLgLctOOFbH16x0Ys3jvfgMZuguOQVg9zQ3wIl/njmm3OOeC5ZL4SJ3SubnHfrhpvOsOefMx6645hrXbrsD4/NMkG+d8378MQXb/zxyCev/PLMN+/889BHL/301Fdv/fXYZ6/99tx37/334Icv/vjkl2/++einr/767Lfv/vvwxy///PTX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" alt="" />

关于,请参考博客:https://developer.mozilla.org/zh-CN/docs/DOM/Manipulating_the_browser_history

三、回到顶部的js代码

document.documentElement.scrollTop = document.body.scrollTop =0; // 页面回到顶部

四、js中动态添加脚本

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
function huhxTest() {
var script = document.createElement( "script" );
script.text = "function test() {alert('helelo world')}";
document.head.appendChild(script).parentNode.removeChild(script);
}
</script>
</head>
<body>
<button onclick="huhxTest()">click me 1</button>
<button onclick="test()">click me 2</button>
</body>
</html>

运行效果:点击click me 1之后点击click me 2,会alert出hello world的字样。如果此时刷新,再点击click me 2,没有任何的反应。

alert出hello world的代码并没有包含在页面中,而是出现在以下中。至于原因,不明。

五、js中函数为另一个函数的参数

function funTest(fn, name) {
return fn(name);
}
var normalFun = function(name) {
console.log("I love you, " + name);
return "I love you, " + name;
}
alert(funTest(normalFun, "huhx"));

运行效果:先console出"I love you, huhx"的字样,再alert出此字样。

六、$().load()方法

一、使用方法如下:

$("#content").load("product.html", "", function() {
alert("hello world");
});

具体的load函数的代码如下:

jQuery.fn.load = function( url, params, callback ) {
var selector, type, response,
self = this,
off = url.indexOf( " " );
if ( off > -1 ) {
selector = jQuery.trim( url.slice( off ) );
url = url.slice( 0, off );
}
if ( jQuery.isFunction( params ) ) {
callback = params;
params = undefined;
} else if ( params && typeof params === "object" ) {
type = "POST";
}
if ( self.length > 0 ) {
jQuery.ajax( {
url: url,
type: type || "GET",
dataType: "html",
data: params
} ).done( function( responseText ) {
response = arguments;
self.html( selector ?
jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
responseText );
} ).always( callback && function( jqXHR, status ) {
self.each( function() {
callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
} );
} );
}
return this;
};

可以看到,load有三个参数。第三个callback函数不管成功与否,都会执行。第二个参数是发送请求时的数据。实质上就是根据url,发送ajax的请求,将文件返回的内容通过$().html()添加到相应的元素当中。

友情链接

日记整理---->2016-11-22的更多相关文章

  1. 2017/11/22 Leetcode 日记

    2017/11/22 Leetcode 日记 136. Single Number Given an array of integers, every element appears twice ex ...

  2. 【读书笔记】2016.11.19 北航 《GDG 谷歌开发者大会》整理

    2016.11.19 周六,我们在 北航参加了<GDG 谷歌开发者大会>,在web专场,聆听了谷歌公司的与会专家的技术分享. 中午免费的午餐,下午精美的下午茶,还有精湛的技术,都是我们队谷 ...

  3. [官方软件] Easy Sysprep v4.3.29.602 【系统封装部署利器】(2016.01.22)--skyfree大神

    [官方软件] Easy Sysprep v4.3.29.602 [系统封装部署利器](2016.01.22) Skyfree 发表于 2016-1-22 13:55:55 https://www.it ...

  4. U3D笔记11:47 2016/11/30-15:15 2016/12/19

    11:47 2016/11/30Before you can load a level you have to add it to the list of levels used in the gam ...

  5. 2016/11/10 吃吃喝喝Hacking Thursday Night聚餐活动 at Dunkin Donuts

    店名:Dunkin Donuts 唐恩都乐 点评:http://www.dianping.com/shop/21378231 地址:静安区南京西路1649号静安公园内(近静安公园) 走法:地铁2号线静 ...

  6. 微信iphone7、 ios10播放视频解决方案 2016.11.10

    2016.11.10日更新以下方法 微信最新出同层播放规范 即使是官方的也无法解决所有android手机的问题. 另外iphone 5 .5s 某些手机始终会弹出播放,请继续采用 “以下是老的解决办法 ...

  7. lambda的使用ret = filter(lambda x : x > 22 ,[11,22,33,44])

    #!/usr/bin/env python #def f1(x) : # return x > 22 ret = filter(lambda x : x > 22 ,[11,22,33,4 ...

  8. #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个key的值

    #!/usr/bin/env python #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个ke ...

  9. 最新的 cocoapods 安装与使用(2016.11)

    cocoapods简介: cocoapods 是iOS的类库管理工具,可以让开发者很方便集成各种第三方库,而不用去网站上一个个下载,再一个个文件夹的拖进项目中,还得添加相关的系统依赖库.只需要安装好c ...

  10. 【转载】webstorm11(注册,激活,破解,码,一起支持正版,最新可用)(2016.11.16更新)

    很多人都发现 http://idea.lanyus.com/ 不能激活了 很多帖子说的 http://15.idea.lanyus.com/ 之类都用不了了 最近封的厉害仅作测试 选择 License ...

随机推荐

  1. [转]Handler学习笔记(一)

    一.Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用.比如可以用handler发送一个message,然后在handler的线程中 ...

  2. CDH离线安装

    1. 安装准备 系统:Centos 6 Cloudera Manager分配如下: 安装版本:CDH-5.8.0 所需安装文件 CDH相关 CDH-5.8.0-1.cdh5.8.0.p0.42-el6 ...

  3. DataGridView使用技巧十二:DataGridView Error图标表示的设定

    为了提醒用户注意,DataGridView可以使用Error图标来突出显示. Error图标可以在单元格和行头内表示,但不能在列头上显示. 1.ErrorText属性 当设定单元格/行的ErrorTe ...

  4. [mysql] mysql-myibatis-整理

    ==================================== insert ========================================== 语句1 <inser ...

  5. JSONObject、JSONArray

    最近两个星期接触最多的就是json和map了. 之前用到的json,就是一个键对应一个值,超级简单的一对一关系.现在用到的json那可以层层嵌套啊,刚开始接触的时候,确实有种崩溃的赶脚,不想去理,取个 ...

  6. 第二百八十七节,MySQL数据库-条件语句、循环语句、动态执行SQL语句

    MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF ...

  7. mout系统流程

    mount()的最后一个参数data是传给文件系统解释的,有兴趣可以跟踪一下系统调用mount的流程(以vfat为例): sys_mount()-->do_mount()-->do_add ...

  8. perl 字符串比较操作符

    perl 中数字和字符串的比较操作符是不一样的 : 其中 == 用于比较数字是否相等:eq 用于比较字符串是否相等: 今天找程序里的bug,结果就是这个操作符用错,哎,赶紧记一下!

  9. sqlserver 字符串split

    select value from TF_NJVALUES('3C457A2D-188B-4D99-A822-2968054E1FB8,3C457A2D-188B-4D99-A822-2968054E ...

  10. 动态调用WCF不添加服务(svcutil.exe)

    记录下 首先用svcutil.exe把指定wcf接口的信息下载下来. 生成代理类 比如说接口地址为 http://localhost:6666/Service1.svc 以管理员身份打开cmd 执形 ...