我怎样才能绑定所有的事件(即click,keypress,mousedown一个DOM元素),使用jQuery,没有单独列出每一个出来?
例:
$('#some-el').bind('all events', function(e) {
console.log(e.type);
});
Run Code Online (Sandbox Code Playgroud) 是否可以收听所有javascript事件?
我试图猜测在AJAX请求修改DOM之后是否触发了事件.
首先,这里是W3C标准定义的事件类型列表.(此列表基于HTML5标准中定义的onevent属性.我假设有许多其他事件类型,但此列表足够长.)
我希望能够通过手持式扫描仪扫描条形码并使用Javascript处理结果.
条形码扫描仪几乎像键盘一样工作.它输出扫描/翻译(条形码 - >数字)数据原始(对吗?).实际上我只需要捕获输出并继续.但是怎么样?
这是我想做的一些伪代码:
$(document).on("scanButtonDown", "document", function(e) {
// get scanned content
var scannedProductId = this.getScannedContent();
// get product
var product = getProductById(scannedProductId);
// add productname to list
$("#product_list").append("<li>" + product.name + "</li>");
});
Run Code Online (Sandbox Code Playgroud)
提前致谢!
是否可以在网页上跟踪用户的每个操作并创建日志?我们的想法是通过AJAX将用户操作的日志传输到服务器并保存.在每个元素的每个事件上,我可以编写代码/逻辑来编写一些登录控制台,但我想知道是否有任何库/快捷方式可以记录客户端网页上的所有操作,包括事件和操作,如复制,粘贴,单击,双击,选择等及其元素参考.
我想使用通配符完成以下代码(我认为不存在?)
myObject.element = document.getElementsByClassName('js-myObject');
myObject.element.addEventListener('click', myObject.click);
myObject.element.addEventListener('mouseover', myObject.mouseover);
//etc..
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有以下内容
myObject.controller = function(e){
if( (e.type in myObject) && (typeof myObject[e.type] ==='function') ){
myObject[e.type](e);
}
};
//but the listeners still have to be assigned as such
myObject.element = document.getElementsByClassName('js-myObject');
myObject.element.addEventListener('click', myObject.controller);
myObject.element.addEventListener('mouseover', myObject.controller);
//etc...
// but I want to do (and it doesn't work)
myObject.element.addEventListener('*', myObject.controller);
Run Code Online (Sandbox Code Playgroud)
除了事件数组和 foreach 语句之外的方法有什么建议吗?
我已经接受了下面的答案(没有可用的通配符,解析可能有数百个事件是个坏主意)
对于那些寻找类似功能的人,我已经确定了以下方法,至少现在是这样。
for(var prop in myObject){
if (!myObject.hasOwnProperty(prop){continue;}
if (typeof myObject[prop] !== 'function'){continue;}
myObject.element.addEventListener(prop, myObject[prop]);
}
Run Code Online (Sandbox Code Playgroud)
好处是自定义事件的处理程序,我不必返回并为其添加侦听器。缺点是我必须确保在定义每个 myObject.someEvent() 之后调用此函数。我在 myObject.init() 中调用它;这对我来说很好。请注意,此解决方案不符合我以前的规范,因为它使用了 …
我的页面上有许多第三方JS脚本。当我加载页面时,它会向下滚动到特定的div。
我已经花了两个小时试图找出导致滚动的代码。
有没有办法找出哪个脚本/部分代码触发了滚动?
我有条形码扫描仪.
有时用户想要通过条形码搜索项目.
但他很懒,并且根本不想使用鼠标来点击输入.
扫描仪通常非常快速地输入8到13个符号,没有人类类型这么快.
这将是(1)检测极端输入并且如果页面上没有输入元素具有焦点(2)然后选择具有特定类别的输入,则用来自扫描仪的内容填充并开始搜索的完美解决方案.
第二阶段不是问题.我不知道如何从第一阶段开始.
有图书馆吗?
不完美的解决方案是编程条形码阅读器开始每次进入一些组合键并听取此键并将注意力集中在必要的输入上.但这需要其他人的额外工作.
完美的解决方案是否可达?