jQuery实现获取绑定自定义事件元素的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery实现获取绑定自定义事件元素的方法相关的知识,希望对你有一定的参考价值。
参考技术A 本文实例讲述了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程序设计有所帮助。
JS或者jQuery怎么给动态添加的DOM元素绑定事件
楼下说得太简单了,估计提问者看不懂。
假设,你有以下DOM
<div id="dvTest"><div>在这下面加一个按钮</div>
</div>
然后你添加一个按钮,方法如下
var $container = $("#dvTest");
$container.append("<a href='javascript:;'>click me</a>");
然后,给刚加的按钮一个click事件
//你要先找到你加的这个按钮$("#dvTest > a").click(function() alert('you clicked me') );
//或
$("#dvTest > a").unbind().on('click'), function() alert('you clicked me') );
我觉得你主要是jQuery的筛选器用得不够熟。你可以搜一下,大概看看。只要能找到控件,绑定事件都不叫事儿。
或者用on来绑定
以上是关于jQuery实现获取绑定自定义事件元素的方法的主要内容,如果未能解决你的问题,请参考以下文章