如何将 DOM 元素绑定到自定义 $.touchpress 事件
How to bind a DOM element to a custom $.touchpress event?
我想创建一个名为touchpress
的自定义事件,可以使用通常的JQuery .bind()
绑定对象。
以下是我目前如何计算按钮的触摸压力:
$("#myButton").bind("touchstart", function() {
var startTime = new Date().getTime();
}).touchend(function() {
var duration = new Date().getTime() - startTime;
});
但是我希望能够将任何元素绑定到此事件,并简单地触发触摸按下事件
$("#myButton").bind("touchpress", onTouchPress);
我尝试使用触发器:
$(document).trigger("touchpress", duration);
但不知道该绑定到什么。 我也不知道将触摸启动事件绑定到什么.... 有人想帮我把这些碎片粘在一起吗?
touchpress
包装器:
$.fn.touchpress = function(fn){
var startTime;
return this.on({
"touchpress": fn,
"touchstart": function(){
startTime = new Date().getTime();
},
"touchend": function(){
var duration = new Date().getTime() - startTime;
$(this).trigger("touchpress", duration);
}
});
};
用法:
$("span").touchpress(function(evt, duration){
console.log(duration);
});
JavaScript 区分大小写。
您绑定了touchPress
事件,但随后触发了touchpress
。这些不是同一个事件。
HTML:
<div id="main_content"></<div>
JS代码:
document.getElementById('main_content').ontouchstart=onStartFunction;
/* or for multiple elements using jquery*/
$('.myBtns').each(function(){
this.ontouchstart=onStartFunction;
});
function onStartFunction(e){
//e.stopPropagation(); // if necessary
// your code goes here
}
您可以绑定您喜欢的每个事件 OnTouchStart, OnTouchMove, OnTouchEnd 等。如果你使用 e.stopPropagation(),这将防止事件冒泡
事件冒泡上升到dom树上。
因此,如果您将处理程序附加到"myButton",则需要直接在元素或该元素的子元素上触发事件。
绑定:附加一个函数,当事件到达将该函数绑定到该事件的元素时,该函数将触发
触发:从源元素向上触发事件,直到到达顶部元素或处理程序调用 event.stopPropagation();
例:
DOM 结构:
document->body->div->button[id=myButton]
您可以在 DOM 中的任何元素上绑定任何事件
如果从按钮触发,则事件冒泡[id=myButton]
button[id=myButton]->div->body->document
在您的情况下:
$("#myButton").trigger("touchpress"); //this triggers the handler that will respond to touchpress
如果您不想知道触发事件所需的元素来源,则可以添加一个标记类,这些元素并手动触发每个元素上的事件
$('.has-touchpress-handler').trigger('touchpress');
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- jQuery自定义验证比较多个输入的序列
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 在wordpress一定时间后更改自定义字段
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 自定义函数中的光标位置
- 用于检查数组中是否存在元素的javascript自定义方法
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- Meteor-添加用户自定义字段的方法不起作用
- 自定义表单验证和提交
- jQuery工具验证器自定义效果-添加&消除影响
- 可以't计算自定义谷歌地图的js
- 谷歌水印未显示在自定义搜索框中
- vaadin:使用自定义布局集成angular js
- DataTables-创建自定义分页样式(加载更多样式)
- 实现一个建立在google.com之上的自定义搜索引擎
- 添加自定义标记以自动完成
- 如何使用自定义标头跨域执行AJAX POST
- 如何将 DOM 元素绑定到自定义 $.touchpress 事件