我有一个正在寻找实时点击事件的脚本,但我希望点击不适用于某些<a>
代码
到目前为止,这是我的代码:
$('a:not(.btn-control)').filter(function(index) {
return $(this).attr('href').match(/#|void/);
}).live("click", function() {
var url;
url = $(this).attr('href');
url = url.replace(/^.*#/, '');
$.history.load(url);
return false;
});
问题
我有一个静态播放器的网站,点击链接后我使用HTML5历史记录功能加载新内容,以便页面永远不会刷新...以避免必须遍及整个网站并添加类应该包含此功能的所有链接onClick,我只想过滤掉#
javascript:void(0)
或href
的那些链接
问题
如何过滤掉href
包含javascript:void(0)
或#
的链接?
工作代码
$('a:not(.btn-control)').live("click", function() {
var self, url;
self = $(this);
url = self.attr('href');
if (url.match(/#|void/) === null) {
url = url.replace(/^.*#/, '');
$.history.load(url);
return false;
}
});
答案 0 :(得分:2)
jQuery docs表示:
不支持DOM遍历方法来查找要发送到.live()的元素。相反,应始终在选择器之后直接调用.live()方法,如上例所示。
相反,您应该处理所有a
标记,但如果您不需要处理它,请退出。
$('a:not(.btn-control)').live("click", function() {
var self = $(this);
if (!self.attr('href').match(/#|void/)) {
return;
};
// else continue and do stuff
var url = self.attr('href');
url = url.replace(/^.*#/, '');
$.history.load(url);
return false;
});