2014-10-30 127 views
0

以下是我用来动态加载内容的代码。我面临的问题如下:Ajax内容加载问题

下面的代码现在已禁用CTRL+CLICK简码在新选项卡中打开网址。新的CSS和JS如果在前一页中不存在,则不适用。请让我知道如何解决上述问题?

$(document.body).on("click", "nav a", function() { 
     topen = $(this).attr("href"); 
     window.location.hash = $(this).attr("href"); 
     $("#main_wrapper").load(topen +" #main_wrapper > *"); 
     return false; 
}); 
+0

如果您正在动态更改页面,您为什么要允许用户“CTRL +点击”打开一个新选项卡?在这种情况下,您完全覆盖了链接的默认行为。 – HJ05 2014-10-30 22:57:35

+0

@ HJ05因为我在网站的主菜单上应用它,并且一些用户想要在标签页中打开新页面。所以如果用户点击'CTRL + CLICK',怎么做呢? – user3027531 2014-10-30 23:00:28

回答

1

你想要做的是修改处理程序以使用防止默认值而不是返回false。然后,您可以检查用户如何激活按钮并可以采取相应措施。

$(document).ready(function() { 
    $('a').on('click', function(e) { 
     if(e.ctrlKey || e.button === 1) { 
      return; 
     } 
     e.preventDefault(); 
     // Do the stuff when the anchor is just clicked. 
    }); 
}); 

您可以检查Fiddle

在JS的条款和CSS不适用,我们需要这个工作的例子是更多的帮助。

+0

感谢js我写了可以动态加载或卸载CSS和Javascript的代码。我想它是唯一正确的方法。我之前想过让我们只加载新的css和js,这些新的css和js不会出现在请求打开新页面的当前页面中。 – user3027531 2014-10-30 23:18:45