【发布时间】:2014-02-13 14:03:31
【问题描述】:
大家好。 我今天遇到了这个问题:假设我有数百页,具有“几乎”相同的结构(但这不是强制性的)。这个页面已经完成了,我只能查看它们(不能以任何方式编辑它们的 html)。 此外,在所有(嗯,大多数)中,都包含 jquery,但此时包含 1.5。
我想做的是跟踪(通过 ajax 调用)页面上的所有点击,然后才真正做“某事”。
我有一个注入点,在页面的开头,就在包含 jquery 之后(只是为了知道)
实际上,我已经给文档绑定了一个点击事件,对吧:
$(document).bind('click', function(evt) {
evt.preventDefault();
alert(evt.target.id+" and "+evt.target.class+" and "+evt.target.name);
//ajax call will be here
try{
evt.trigger('click');
}catch(e){}
});
结果非常好......页面上的任何点击都会触发警报,在某些情况下我得到一个 ID,在其他时候我得到一个类......或未定义的结束等等。这个解决方案的问题是每次点击都是绑定的,这真的是一种盲目的方式,我只想从那些“可点击”元素(如链接、按钮、复选框...)中获得点击,同时忽略 div、html 元素...身体,等等。
有什么技巧可以让我只选择那些允许点击它们的元素?还是不可能?第二个问题是... preventDefault 是否通过在末尾添加 evt.trigger('click') 得到了很好的处理?我的意思是,我不能破坏所有这些页面,只是因为我在开头放了一个 preventdefault,我必须保留这些元素的功能......
我不是在寻找开箱即用的解决方案,我只是想了解它是否可能......或者是否有一些黑客、作弊、嗯......我可以用来实现这一目标的东西。
有什么想法吗?
我的第二个解决方案是写下每一页的那些可点击元素的所有类、ID、名称......但它们有数百个......这有点......嗯......你明白了。
提前致谢。
【问题讨论】:
-
我打算建议使用 $(document).on("click","[your selector]",function(){}) 但我注意到您的版本限制:(
标签: javascript jquery ajax dom click