0

我希望当单击特定链接时,文件的内容将加载到 div 中。这很好用,但是当我单击另一个文件时,我希望将另一个文件的内容加载到该 div 中的 ul 元素中,但它不起作用。

这是我做的:

$(document).on('click', 'a.link2', function() {
  var value = $(this).attr("href");
  value=value.replace("#","");

   var linkName = {'href':value};

          $.ajax({

  type: "POST",
  url: 'pp.php',
  data :linkName,
  success: function(response){
      if(value=="login")
    $('#div1').html(response); 
      }
    });
     }); 

 $(document).on('click', 'a.link', function() {
  var value = $(this).attr("href");
  value=value.replace("#","");

   var linkName = {'href':value};
  // alert(value+"dd");
  $.ajax({

  type: "POST",
  url: 'make.php',
  data :linkName,
  success: function(response){

  $('#target').html(response);

      }
  });
  }) ;

html代码:

<div id="div1">

<ul id="target">
 .
 .
 .
      </ul></div>
4

2 回答 2

2

发生这种情况是因为您覆盖了#div1( with$('#div1').html(response); ) 的内容,因此您删除了该ul元素。因此,当进行下一个 ajax 调用时,ul找不到..

您可以将您的 html 更改为

<div id="div1">
    <div id="ajaxresult"></div>
    <ul id="target"></ul>
</div>

并使用$('#ajaxresult').html(response);而不是$('#div1').html(response);

于 2013-02-01T15:04:10.583 回答
1

您的问题是第一个 ajax 调用覆盖了内部的 html #div1$('#div1').html(response)因此#target当涉及到第二个 ajax 调用时不再存在。

要绕过它,您可以将 html 更改为:

<div id="div1"></div>
<ul id="target"></ul>
于 2013-02-01T15:02:57.820 回答