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>

然后你添加一个按钮,方法如下

function addButton()
    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的筛选器用得不够熟。你可以搜一下,大概看看。只要能找到控件,绑定事件都不叫事儿。

参考技术A 添加后再绑定事件。
或者用on来绑定

以上是关于jQuery实现获取绑定自定义事件元素的方法的主要内容,如果未能解决你的问题,请参考以下文章

jquery的自定义事件通过on绑定trigger触发

如何绑定到jQuery中的所有自定义事件

JQuery给动态添加的元素绑定事件

自定义事件 (jQuery)

jQuery事件绑定

jQuery-3.事件篇---自定义事件