Category Archives: JavaScritp
jQuery中setTimeout的几种使用方法
jQuery 中 setTimeout/setInterval 不能像在原生态 javascript 中那样使用, 否则会报错. 我们通过例子来说明一下jQuery中setTimeout的几种使用方法, 首先准备好测试用的DIV和公共函数: <div id="div_debug"></div> <script src="http://www.studyday.net/demo/jquery.js"></script> <script language="JavaScript"> function log(s){ $('#div_debug').append(s+'<br>'); } //下文中测试用的代码可以放在这一行注释的下面,替换掉 //... //... </script> 原生态 javascript 中的 setTimeout 基本用法是像这样子的. //原生态 javascript 中的 setTimeout 基本用法 function funA(){ log('funA...'); setTimeout('funA()', 1000); } funA(); 下面是jQuery中setTimeout的几种使用方法. 在线实例 //jQuery 中的用法 function funA(){ log('funA...'); setTimeout('funA()', 1000); } jQuery(document).ready(function($){ //用法1 : 把要调用的函数写在ready外面,使它成为全局函数 funA(); [...]
JS 文件压缩与反压缩
压缩 js 代码不但可以大大减小 js 文件大小, 还能给用户设置一定的技术门槛使其不能直观的阅读 js 源代码. 下面推荐一个在线压缩 js 工具 Dean Edward's packer: http://dean.edwards.name/packer/ 它还同时提供了利用 php 来压缩 js 的程序: http://joliclic.free.fr/php/javascript-packer/en/ 配合前面介绍的《巧用用户工具强化你的 Editplus》利用 php 命令很容易的给 Editplus 加上 javascript 压缩功能. 当然世界上有盾必有矛, 有压缩当然也会有反压缩, 下面就是一款专门针对 Dean Edward's packer 的反压缩工具: http://jsbeautifier.org/
正则表达式的贪婪与非贪婪模式
在使用修饰匹配次数的特殊符号时,有几种表示方法可以使同一个表达式能够匹配不同的次数,比如:"{m,n}", "{m,}", "?", "*", "+",具体匹配的次数随被匹配的字符串而定。这种重复匹配不定次数的表达式在匹配过程中,总是尽可能多的匹配。比如,针对文本 "dxxxdxxxd",举例如下: (d)(\w+) "\w+" 将匹配第一个 "d" 之后的所有字符 "xxxdxxxd" (d)(\w+)(d) "\w+" 将匹配第一个 "d" 和最后一个 "d" 之间的所有字符 "xxxdxxx"。虽然 "\w+" 也能够匹配上最后一个 "d",但是为了使整个表达式匹配成功,"\w+" 可以 "让出" 它本来能够匹配的最后一个 "d" 由此可见,"\w+" 在匹配的时候,总是尽可能多的匹配符合它规则的字符。虽然第二个举例中,它没有匹配最后一个 "d",但那也是为了让整个表达式能够匹配成功。同理,带 "*" 和 "{m,n}" 的表达式都是尽可能地多匹配,带 "?" 的表达式在可匹配可不匹配的时候,也是尽可能的 "要匹配"。这种匹配原则就叫作 "贪婪" 模式 。 非贪婪模式: 在修饰匹配次数的特殊符号后再加上一个 "?" 号,则可以使匹配次数不定的表达式尽可能少的匹配,使可匹配可不匹配的表达式,尽可能的 "不匹配"。这种匹配原则叫作 "非贪婪" 模式,也叫作 "勉强" 模式。如果少匹配就会导致整个表达式匹配失败的时候,与贪婪模式类似,非贪婪模式会最小限度的再匹配一些,以使整个表达式匹配成功。举例如下,针对文本 "dxxxdxxxd" 举例: (d)(\w+?) "\w+?" 将尽可能少的匹配第一个 "d" [...]
Also posted in PHP, Tips Leave a comment
细说 Javascript 函数
作者:F. Permadi 译者:Sheneyan(子乌) 时间:2006.01.03 英文原文: INTRODUCTION TO JavaScript Functions 子乌注:一篇相当不错的function入门文章,个人感觉相当经典。 词语翻译列表 function:函数(Function未翻译) declare:定义 assign:指派,分配 functionbody:函数体(就是函数的内容) object:对象 property:属性 unnamed:匿名(在这里没翻译成未命名) object oriented programming:面向对象编程 class:类(比如后面的class data type我翻译成类数据类型) pointer:指针 reassign:重新分配 nest:嵌套 feature:功能,特性 local/global:局部/全局 blueprint:蓝图(?) user defined:用户自定义 instance:实例 prototype:原型(除了标题都不翻译) internal:内部 constructor:构造器 duplication:复制 函数:定义 有以下这些方法可以定义一个函数。所有这些都是有效的,但是它们在后台如何实现的则有一些差别。 1, 常用的写法 一般大家都用这个写法来定义一个函数: functionName([parameters]){functionBody}; Example D1: function add(a, b){ return a+b; } alert(add(1,2)); // 结果 3 [...]
常用的 jQuery 插件
自己整理的一些常用的 jQuery 的插件: http://www.malsup.com/jquery/ [对话框插件/推荐] http://dev.iceburg.net/jquery/jqModal/ [对话框插件] http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/ [日历插件] http://jquery.bassistance.de/validate/demo/ [表单验证] http://jquery.com/demo/thickbox/ [图片层/对话框] http://demos.flesler.com/jquery/scrollTo/ [锚点特效] http://15daysofjquery.com/examples/jqueryEditInPlace/demo.php [div编辑] http://www.davehauenstein.com/code/jquery-edit-in-place/example/ [div编辑&保存] http://www.appelsiini.net/projects/jeditable/default.html [div编辑&保存] http://www.jdempster.com/category/jquery/disableTextSelect/ [禁止鼠标选取] http://www.phpletter.com/contents/ajaximageeditor/ajax_image_editor.php [图片放大缩小/加图解] http://www.phpletter.com/Demo/Jquery-Floating-Box-Plugin/ [页面四角浮停DIV] http://www.visual-blast.com/javascript/jcrop-jquery-image-crop-plugin/ [图片裁切] http://stanlemon.net/projects/jgrowl.html [类似 163 BLOG右上角提示信息插件] http://jquery.lukelutman.com/plugins/flash/ [Flash IE7 无虚框插件]
怎样保存 Checkbox 值
预备知识点: 二进制数值: 0的二进制数值是 0 1的二进制数值是 1 2的二进制数值是 10 3的二进制数值是 11 4的二进制数值是 100 5的二进制数值是 101 6的二进制数值是 110 ... 在 php 中可以通过 decbin() 函数将十进制数字转换为二进制数字. 位运算符 & (按位与), 什么是 & 运算呢? 以 $c = $a & $b 表达式为例, & 运算是将 $a, $b 的二进制数值相比较, 只要两个二进制数中某位都是1, 则结果的二进制数中该位都为1, 否则结果为 0. 假设: $a 的值为 2 (十进制), 它的二进制数值为 10 $b 的值为 4 (十进制), [...]
自动设置DIV字体大小填充DIV
在线演示 <script src="http://www.studyday.net/demo/jquery.js"></script> <script language="JavaScript"> jQuery(document).ready(function($){ $("#txt_input").keyup(function (){ main(); }).keydown(function (){ main(); }).change(function (){ main(); }); function main(){ var loopFlag = true; var divContentHeight = parseInt($("#div_content").css("height")); var htmlCode = $("#txt_input").val()+"<div id='div_mark' name='div_mark'></div>"; $("#div_content").html(htmlCode); var fontSize = get_div_font_size(); while (loopFlag){ loopFlag = get_div_height()>divContentHeight ? true : false; if (loopFlag) { fontSize = fontSize-1; set_div_font_size(fontSize); } } [...]
类MSN好友上线提示框
在线演示 <script language="JavaScript"> //自制类似MSN好友上线通过的弹出框 function popup(popup_name, div_id, div_width, div_height, ifr_src){ this.popupName = popup_name; this.divId = div_id; this.divWidth = div_width; this.divHeight = div_height; this.ifrSrc = ifr_src; this.divObj = ""; this.IE = 10; //浏览器版本 this.p = 3; //每次增加OR减少3px this.t = 10; //多长时间一次 //展开 this.open = function (){ var newHeight = parseInt(this.divObj.style.height)+this.p; var newTop = parseInt(this.divObj.style.top)-this.p; if (newHeight<=this.divHeight){ [...]
超链接中的 javascript:void(0);