带有preventDefault和jQuery加载的新选项卡

时间:2014-03-12 11:42:15

标签: jquery hyperlink

我有一个带有preventDefault方法的超链接处理程序。我想在新选项卡中打开一个链接,并使用jQuery .load()方法加载特定内容。做这个的最好方式是什么? 这是超链接处理程序的代码和我加载内容的方式。

$("a").click(function(event){
    event.preventDefault();
    if ($(this).attr("target")=="_blank"){
        // open at new tab and make some actions
    }
    else {
        //some actions
    }
});

$(".loadedContent").click(function(){
   $(".content").load("loadedContent.html");
});

1 个答案:

答案 0 :(得分:1)

您可以在新标签页中打开链接,但请记住,您将无法使用jQuery访问该页面。您必须加载一个URL,您将拥有jQuery .load()代码。例如:

if($(this).attr("target") == "_blank") {
  window.open('url');
}

然后在新标签中,您可以加载您拥有该方法的页面。像:

<html>
  <body>
    <script>
      $(document).ready(function () {
        $('div').load('the_new_url.html');
      }); // do remember to add the jquery file to the HTML document. 
    </script>
    <div></div> <!--You'll find the new content in the DIV-->
  </body>
</html>

这会非常混乱!

要使用.load()方法,最好在同一页面上使用此方法,加载新内​​容并使用提取的内容替换现有内容。这些弹出窗口让用户烦恼!正如 Rex 所提到的,答案将基于意见,所以我的意见是在同一页面上使用该方法而不是新标签!

如果是我,我会使用上面的代码填充DOM加载事件的内容。在每个元素点击,我会根据元素和事件更新内容!