Javascript Jquery加载在firefox中不起作用
我在开发一个网站时遇到了一个脚本问题。它在Safari、Opera和Chrome中运行良好,但在firefox中不起作用 当您单击一个链接时,我尝试将div#contain从内部链接加载到一个覆盖div,然后该div被取消隐藏。所有这些在我上面提到的浏览器中都可以正常工作,但在firefox中不起作用,单击功能只会像平常一样打开链接(重新加载页面) 你知道为什么它不能在Firefox中工作吗?我遗漏了什么Javascript Jquery加载在firefox中不起作用,javascript,jquery,firefox,Javascript,Jquery,Firefox,我在开发一个网站时遇到了一个脚本问题。它在Safari、Opera和Chrome中运行良好,但在firefox中不起作用 当您单击一个链接时,我尝试将div#contain从内部链接加载到一个覆盖div,然后该div被取消隐藏。所有这些在我上面提到的浏览器中都可以正常工作,但在firefox中不起作用,单击功能只会像平常一样打开链接(重新加载页面) 你知道为什么它不能在Firefox中工作吗?我遗漏了什么 $(document).ready(function(){ var $
$(document).ready(function(){
var $ov = $('.overlay'),
$tp = $('#transparent'),
URL = ' ',
siteURL = "http://" + top.location.host.toString(),
$internal = $("a[href^='"+siteURL+"'], a[href^='/'], a[href^='./'], a[href^='../'], a[href^='#']:not('.no')"),
hash = window.location.hash,
$el, $allLinks = $("a");
$tp.hide();
$ov.hide();
$tp.click(function(){
$ov.empty();
$tp.hide();
$ov.hide();
});
if (hash) {
$ov.show();
$tp.show();
hash = hash.substring(1);
URL = hash + " #contain";
$ov.load(URL);
};
$internal.each(function(){
$(this).attr("href", "#" + this.pathname);
}).click(function(){
$tp.show();
$ov.show();
$el = $(this);
URL = $el.attr("href").substring(1);
URL = URL + " #contain",
$ov.load(URL);
});
});
而不是
$tp。单击(函数)(
试一试
我认为您的click函数中缺少preventDefault。这告诉jQuery/javascript不要遵循默认操作,在您的情况下,无论链接指向HREF中的哪个位置,都会遵循默认操作 而不是
$tp.click(function(){
$ov.empty();
$tp.hide();
$ov.hide();
});
应该是
$tp.click(function(e){
e.preventDefault;
$ov.empty();
$tp.hide();
$ov.hide();
});
尝试更改浏览器的默认行为:
(event.preventDefault) ? event.preventDefault() : event.returnValue = false;
我试过了,但得到了和以前一样的结果。还有其他建议吗?我认为点击功能甚至没有问题。我的猜测是,我针对内部链接的方式,不知怎么的,没有按预期的方式工作。在其他浏览器中,链接更新如下:www.website.com/#/link,但在firefox中,它们仍然是这样的:www.website.com/link我想这方面一定有问题。我的一个局部视图也有同样的问题。请尝试在$ov.load(URL)之前添加一个警报,看看是否有效。它对我来说是有效的。我仍在搜索它为什么会这样做和/或如何修复它。
(event.preventDefault) ? event.preventDefault() : event.returnValue = false;