如何锁定/设置/阻止变量.on jquery

时间:2018-04-24 13:45:38

标签: javascript jquery ajax

所以,我有一个jQuery AJAX调用,它从服务器获取数据(一些文本,一些链接)。

AJAX内部成功回调函数中,我得到一个绑定到.on的{​​{1}},为我下一页加载并获取所点击链接的文本(比方说stackoverflow.com) )。

问题从这里开始,因为在新加载的页面中我得到了锚点......

每次点击锚链接后,我都获得了新的<a>值。

.text()

我想知道如何锁定$.ajax({ url: url, type: type, dataType: dataType, success: function(data){ $('.container').append(data); $('.container').on('click', 'a', function(e){ e.preventDefault(); var clickLinkName = $(this).text(); console.log(clickLinkName); $('.container').load($(this).attr('href')); }); } }); 变量。或任何其他方式只保存第一击。

1 个答案:

答案 0 :(得分:1)

我认为这样可以解决问题:

$.ajax({
  url: url,
  type: type,
  dataType: dataType,
  success: function(data) {
    $(".container").append(data);

    var clickLinkName; // Declared here.

    $(".container").on("click", "a", function(e) {
      e.preventDefault();

      // If not initialized, initialize.
      if(!clickLinkName) {
        clickLinkName = $(this).text();
      }

      console.log(clickLinkName);
      $(".container").load($(this).attr("href"));
    });
  }
});

这样只会保存变量clickLinkName中的第一个值。这回答了你的问题,但我确信有更好的方法可以做到这一点。