<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$.fn.extend({
///聚焦前触发该事件 具有以下特点
//1.与focus/OnFocus不同的是 该事件只触发一次不一直触发
//2.与click/OnClick不同的是 该事件可以捕捉Tab键造成的焦点转移
beforeFocus: function (f) {
var ey = $(this);
var _eyisloop = false; var _eybr = function () {
if (_eyisloop == undefined || _eyisloop) {//默认循环
ey.beforeFocus(f); //重新调用
}
ey.unbind("blur", _eybr); //解绑失去焦点函数 避免重复绑定
}; //失去焦点函数 var _eyfs = function () {
_eyisloop = f(); //触发焦点方法
ey.unbind('focus', _eyfs); //解绑获得焦点函数
ey.bind('blur', _eybr); //绑定失去焦点函数
}; //获得焦点函数 ey.bind('focus', _eyfs); //绑定获得焦点函数
}
}); //JQuery扩展 $('#txt_test').beforeFocus(function () {
alert('文本框获得了焦点'); //写你的焦点方法
//return true;//此处返回值 标示是否在失去焦点后重新绑定 不返回默认true
}); //调用
});
</script>
</head>
<body>
<input type="text" id="txt_test" />
</body>
</html>

意图:解决focus重复调用问题和使用click不能捕捉Tab键的焦点转移问题
作者:pcazheng

自定义JQuery插件之 beforeFocus的更多相关文章

  1. 自定义jQuery插件Step by Step

    1.1.1 摘要 随着前端和后端技术的分离,各大互联网公司对于 Mobile First理念都是趋之若鹜的,为了解决网页在不同移动设备上的显示效果,其中一个解决方案就是Responsive Desig ...

  2. 使用自定义 jQuery 插件的一个选项卡Demo

    前几天闲着没事,想着编写一个 jQuery 插件,或许这将是一个美好的开始. 这里是html页面: <!DOCTYPE html> <html lang="en" ...

  3. 如何创建一个自定义jQuery插件

    简介 jQuery 库是专为加快 JavaScript 开发速度而设计的.通过简化编写 JavaScript 的方式,减少代码量.使用 jQuery 库时,您可能会发现您经常为一些常用函数重写相同的代 ...

  4. 【jQuery基础学习】08 编写自定义jQuery插件

    目的:虽然jQuery各种各样的功能已经很完善了,但是我们还是要学会自己去编写插件.这样我们可以去封装一些项目中经常用到的专属的代码,以便后期维护和提高开发效率. jQuery插件的类型: 封装对象方 ...

  5. 1.ssm web项目中的遇到的坑--自定义JQuery插件(slide menu)

    自定义的JQuery插件写的回调函数不执行: 写好了回调函数,将函数打印出来是原形,就是不执行 function () { console.log("---onClickItem---&qu ...

  6. 自定义Jquery插件——由于项目需要,对页面中过长的文本进行截取,鼠标移上去有一个title的提示,所以做了一个Jquery过长文本处理的插件

    由于项目需要,对页面中过长的文本进行截取,鼠标移上去有一个title的提示,所以做了一个Jquery过长文本处理的插件下面是代码: // 掉用方式支持 $('select').textBeauty(1 ...

  7. 自定义jquery插件

    参考:http://blog.csdn.net/bao19901210/article/details/21540137/ 自己看代码理解: <!DOCTYPE html> <htm ...

  8. jQuery插件编写规范

    第一种方法: 在很多基于jQuery或基于Zepto的插件中,在立即函数执行前面会加上";"这个符号. 这是为了防止前面的其他插件没有正常关闭. 在立即执行函数执行时,会一般会传入 ...

  9. (翻译)编写属于你的jQuery插件

    Writing Your Own jQuery Plugins 原文地址:http://blog.teamtreehouse.com/writing-your-own-jquery-plugins j ...

随机推荐

  1. Binary Tree Zigzag Level Order Traversal——LeetCode

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  2. UVAlive3415 Guardian of Decency(最大独立集)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34831 [思路] 二分图的最大独立集. 即在二分图中选取最多的点, ...

  3. GPRS

    互动百科http://www.baike.com/wiki/GPRS 百度百科http://baike.baidu.com/link?url=M-ElL_qR1bwzUr7BdrDgN4EzBhYYJ ...

  4. 从SG函数浅谈解决博弈问题的通法

    基于笔者之前对于几种二元零和博弈游戏的介绍,这里将其思想进行简单的提炼,并引出解决这类二元零和博弈游戏的强大工具——SG函数. 其实对于博弈游戏如Bash.Nim等基本类型,异或一些比较高级的棋类游戏 ...

  5. 布隆过滤器的java实现

    package com.kaikeba.data.jobspider.util; import java.util.BitSet; public class Bloomfilter { private ...

  6. IOS UITextField 设置光标位置

    textField.leftView = [[[UIView alloc] initWithFrame:CGRectMake(, , , )] autorelease]; textField.left ...

  7. readmine项目管理和缺陷跟踪工具

    官方网站:http://www.redmine.org/演示地址:http://demo.redmine.org/下载地址:http://www.redmine.org/projects/redmin ...

  8. UIAlertView弹出框

    <Alert弹出框提示用户信息>    1.遵循代理方法<UIAlertViewDelete>    2.调用方法UIAlertView *alert = [[UIAlertV ...

  9. ASP.NETserver控件使用之Reportviewer 报表

    1.       Reportviewer 报表 1.1.       Reportviewer控件 注:本教程附2个事例: l  演练:在本地处理模式下将数据库数据源与 ReportViewer W ...

  10. [Angular 2] Use Service use Typescript

    When creating a service, need to inject the sercive into the bootstrap(): import {bootstrap, Compone ...