【问题标题】:After successfull ajax call anchor tag's href attribute doesnt worksajax调用成功后锚标签href属性不起作用
【发布时间】:2014-04-11 14:21:43
【问题描述】:

我有这些

    <div id="shelf">
    <div>
      <input type="text" id="new-shelf-text" onkeyup="(this.value).trim().length?$('#add-shelf-btn').removeClass('disabled'):$('#add-shelf-btn').addClass('disabled');" placeholder="Add new shelf">
    </div>
    <div>
      <div id="add-shelf-btn" class="button postfix disabled">Add</div>
    </div>

    <a class="shelfName" href="#shelF"> Shelf Lists </a>

    <div id="shelF" class="content">
      welcome in shelf listing      
    </div>   
    </div>
    <script>

    $("#add-shelf-btn").click(function() {

    $.ajax({
      type: "POST",
      url: "{% url 'shelf' groupid %}",
      datatype: "html",
      data:{
        shelf_name: $('#new-shelf-text').val(),
        csrfmiddlewaretoken: '{{ csrf_token }}'
      },
      success: function(data) {
        $("#shelf").html(data);
      }
    });

    });

    </script>

当我在成功返回 ajax 后单击上面提到的链接(锚标记)时,它不会调用 id 为“shelF”的“div” 谁能帮帮我,我想打电话给

<div id="shelF" class="content"> 

点击链接

<a class="shelfName" href="#shelF"> Shelf Lists </a>

请记住,它第一次工作正常,但是当它从成功的 ajax 调用返回时,不会调用 div。

【问题讨论】:

  • 如何调用一个div?
  • $("#shelf").html(data);&lt;div id="shelF" 不匹配。
  • 在您的 html 中,您的 id 为“shelf”,并且您在 id“shelf”(小“f”)中插入数据不存在。尝试更改: $("#shelf").html(data);用这个 $("#shelF").html(data);
  • Phylax & Vishal,再看一遍代码,现在告诉我,我的问题是我想在点击链接&lt;a class="shelfName" href="#shelF"&gt; Shelf Lists &lt;/a&gt; 时致电&lt;div id="shelF" class="content"&gt;,因为我告诉过它第一次有效,作为一个简单的html,但是当我点击&lt;div id="add-shelf-btn" class="button postfix disabled"&gt;Add&lt;/div&gt; 时,它会进行ajax 调用,当它成功返回时,我想在点击&lt;a class="shelfName" href="#shelF"&gt; Shelf Lists &lt;/a&gt; 时调用&lt;div id="shelF" class="content"&gt; 的div 不起作用。现在我希望你能解决我的问题
  • 各位大侠请给出答案,我从 3 天开始就卡在这里了。

标签: javascript jquery html ajax


【解决方案1】:

尝试将其用于您的触发器:

$(document).on("click", "#add-shelf-btn", function() {code...})

【讨论】:

  • Bradley,请看上面我告诉 phylax & Vishal 的 cmets,这样您就可以清楚确切的问题并再次查看代码,并帮助我。
  • 我还是一头雾水,所以你的 ajax 调用有效但 div 没有加载?或者 div 正在加载,您想设置另一个点击处理程序以在它返回 div 后显示其他内容?
  • 是的,ajax 调用有效,甚至 div 也加载了新内容,但是当我刷新页面时,只有内容会显示在该 div 中。所以在ajax加载内容后,&lt;a class="shelfName" href="#shelF"&gt; Shelf Lists &lt;/a&gt;这个链接不起作用,意味着&lt;div id="shelF" class="content"&gt;this div没有被调用。但是当我刷新页面时,只有&lt;a class="shelfName" href="#shelF"&gt; Shelf Lists &lt;/a&gt; 这个链接有效。
  • 您是从单独的文件中加载该 div 吗?还是只是隐藏在页面上?
  • 不,那个 div 来自同一个文件,而且它也没有隐藏在页面上
猜你喜欢
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
相关资源
最近更新 更多