如何从同一分区的外部页面加载链接


How to load a link from external page in same div

需要帮助。。

我有一个index.php页面。在那个页面上,我有一个指向page-2.php的链接。

page-2.php上,

我还有一个其他页面的链接。我可以知道如何在index.php页面的同一个div中加载page-2.php上的链接吗。

我正在使用jQuery加载方法来做这件事。我能够在index.php上的div中加载page-2.php。以下是我制作的代码。

$(document).ready(function() {
 $('a#staff_info').click(function(e){ //link to page-2.php
  e.preventDefault();
  var page = $(this).attr('href');
  $('#content').load(page);
  $('a#upd_staff').click(function(){ //link on page2.php 
     var page_info = $('a#upd_staff').attr('href');
     $('#content').load(page_info);
  });   
 }); 
});

上面的代码将引导我进入一个不在同一个div 上的新页面

Ajax是异步的。
$('#content').load(page);

以上开始加载第二页

$('a#upd_staff').click(function(){ //link on page2.php 

然后,在完成加载之前,尝试将事件处理程序绑定到第2页中的内容。

所以当你点击链接时,没有JS绑定到它,所以它就像一个正常的链接。


使用延迟事件处理程序(这样他们就可以监听文档,并在单击发生时检查单击了什么元素)。

$(document).ready(function() {
    function ajaxLoad(event) {
        event.preventDefault();
        var page = $(this).attr('href');
        $('#content').load(page);       
    }
    $(document).on("click", "a#staff_info, a#upd_staff", ajaxLoad);
 });

当您单击$('a#staff_info')时,我可以看到您使用e.preventDefault();来阻止锚点标记的正常操作,但当您单击$('a#upd_staff')时,您没有使用e.preventDefault();——这就是为什么重定向到page2.php的原因。使用e.preventDefault();-下一次点击可能会有助于

您可以使用get()直接在您的div上添加:

$(document).ready(function() {
 $('a#staff_info').click(function(e){ //link to page-2.php
  e.preventDefault();
  var page = $(this).attr('href');
  $.get(page, function(data, status){
    //action on page loaded, data is your page result
     $('#content').html(data)
  });
  $('a#upd_staff').click(function(){ //link on page2.php 
     var page_info = $('a#upd_staff').attr('href');
     $('#content').load(page_info);
  });   
 }); 
});