jQuery实现获取绑定自定义事件元素的方法


Posted in Javascript onDecember 02, 2015

本文实例讲述了jQuery实现获取绑定自定义事件元素的方法。分享给大家供大家参考,具体如下:

(function ($) { // 自定义itemtab事件
$.fn.bind = function(types, data, fn) { // 重载jQuery.fn.bind方法,用来截获绑定自定义事件的元素
 if(typeof types == 'string' && 'itemtab' == types) {
 var itemTouchStart = -1; // touchstart位置
 var itemTouchMove = -1; // touchend位置,值为-1时表示未触发
 var itemTriggerDistance = 0; // 拖动距离阀值,若大于该值则为拖动列表,若小于等于该值则为点击列表项
 var itemMoved = false; // 列表是否为拖动状态
 $(this).bind('touchstart', function (event) {
  if(!event.originalEvent.touches.length) return true;
  itemMoved = false;
  itemTouchStart = event.originalEvent.touches[0].pageX; // 记录起始位置
 }).bind('touchmove', function (event) {
  if(!event.originalEvent.touches.length) return true;
  itemTouchMove = event.originalEvent.touches[0].pageX; // 当前拖动位置
  //console.log('touchmove:', itemTouchStart, itemTouchMove, itemMoved);
  if(Math.abs(itemTouchMove - itemTouchStart) > itemTriggerDistance) {
  itemMoved = true; // 列表被拖动
  }
 }).bind('touchend', function (event) {
  //console.log('itemMoved:', itemMoved);
  if(itemMoved) { // 列表被拖动过,非点击操作
  return true;
  }
  $(this).trigger('itemtab'); // 触发自定义事件
 });
 }
 return this.on( types, null, data, fn ); // 这种做法具有侵入性,多个类似的代码会相互覆盖,可采用深度复制方式调用原$.fn.bind方法
}
})(jQuery);

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
JScript的条件编译
May 29 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
SeaJS入门教程系列之完整示例(三)
Mar 03 Javascript
js实现div闪烁原理及实现代码
Jun 24 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
Nov 06 Javascript
有关Promises异步问题详解
Nov 13 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
基于Bootstrap表单验证功能
Nov 17 Javascript
微信小程序前端自定义分享的实现方法
Jun 13 Javascript
详解JSON.stringify()的5个秘密特性
May 26 Javascript
Node在Controller层进行数据校验的过程详解
Aug 28 Javascript
微信小程序实现首页弹出广告
Dec 03 Javascript
JS折半插入排序算法实例
Dec 02 #Javascript
如何动态加载外部Javascript文件
Dec 02 #Javascript
javascript实现获取浏览器版本、浏览器类型
Dec 02 #Javascript
JavaScript如何禁止Backspace键
Dec 02 #Javascript
js文本框输入内容智能提示效果
Dec 02 #Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 #Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
Dec 02 #Javascript
You might like
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
php实现word转html的方法
2016/01/22 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
JS打开摄像头并截图上传示例
2017/02/18 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
python实现吃苹果小游戏
2020/03/21 Python
Python requests模块cookie实例解析
2020/04/14 Python
Django静态文件加载失败解决方案
2020/08/26 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
String和StringBuffer的区别
2015/08/13 面试题
怎么写有吸引力的自荐信
2013/11/17 职场文书
通信生自我鉴定
2014/01/18 职场文书
六五普法规划实施方案
2014/03/21 职场文书
三项教育活动实施方案
2014/03/30 职场文书
2014年商场工作总结
2014/11/22 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书