[英]Overriding default behaviour of anchor tags using jquery
我试图覆盖锚标记的默认行为,以便我可以将我的服务器上的网页加载到现有的div中,而不是新的选项卡或窗口。
到目前为止我有:
myContainer.click(function(){
event.preventDefault();
$('a').click(function(){
var link = $(this).attr('href');
myContainer.load(link);
});
});
在Chrome中,我必须在它执行任何操作之前单击链接两次,在IE中,它根本不起作用并使用新链接刷新页面。
任何帮助深表感谢。
不应该只是:
$('a').click(function(e) {
e.preventDefault();
myContainer.load(this.href);
});
您的代码在单击处理程序中分配了一个单击处理程序。 因此, 第一次单击将将单击处理程序附加到链接, 第二次单击(在链接上)将执行新的单击处理程序。
看来你只需要一个点击处理程序。 如果链接动态添加,你可以使用.on()
继任.live
和.delegate
):
myContainer.on('click', 'a', function(e) {
e.preventDefault();
myContainer.load(this.href);
});
// or
$(document).on('click', 'a', function(e) {
e.preventDefault();
myContainer.load(this.href);
});
你忘了通过活动:
myContainer.click(function(event){
event.preventDefault();
$('a').click(function(){ var link = $(this).attr('href');
myContainer.load(link);
});
});
尝试重新排列它们:
myContainer.ready(function(){
$('a').click(function(event){
event.preventDefault();
var link = $(this).attr('href');
myContainer.load(link);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.