2015-06-14 32 views
0

我有一个加载ajax()响应的主页并将其作为LI内容发布到UL,使用相同的页面我具有可以选择LI内容的脚本函数触发另一个功能,但不起作用。如何在Ajax中执行JavaScript函数()响应

PAGE 1

HTML

<ul id="feature-deals" class="list-products allShopping-deals">   
</ul> 

SCRIPT

$(document).ready(function(){ 
    $.ajax({ 
     url: "Product/Shopping-Trending-Items.php", 
     success: function(result){ 
      $(".allShopping-deals").html(result); 
     } 
    }); 

$(".products").click(function(){ 
     alert ($('.pid', this).text()); 

PAGE 2

HTML

<li class="products"> 
<span class="pid">1234</span> 
</li> 

第1页==首页w /(ajax()加载函数+点击函数)---->第2页== Li内容保存pid并等待加载ajax()---->目标输出是提醒PID值,但剧本是在第1页

+0

我不明白这个问题。首先你要说_“加载ajax()响应并将其作为LI内容发布到UL,使用相同的页面”_“,但是接着你说他们在不同的页面上。你不能使用javascript来修改第二页的DOM。如果他们是同一页面,请修改您的问题。 – Auspex

回答

3

你应该delegate事件:

$(".allShopping-deals").on('click', '.products', function(){ 
    alert($(this).find('.pid').text()); 
}); 
+0

谢谢!这一个也适用于我:)学到了如何委托 –

1

你有一个时机的问题。 ajax调用已完成,但分配click事件的语句不会等待结果并执行。 ajax调用是异步的。

将click事件的赋值放入ajax调用的成功处理程序中。

success: function(result){ 
      $(".allShopping-deals").html(result); 
      $(".products").click(function(){ 
       alert($(this).find('.pid').text()); 
      } 
     } 
+0

真棒作品相当不错。另一个答案也是正确的:)这在编码的拇指规则中很好?委托事件或正确的投入成功? –

+0

我会去沃尔夫的解决方案。代表将自动将点击事件分配给新添加的项目。因此,成功处理程序不必知道新添加的项目需要点击事件。我也学到了一些新的东西:)。 – Barry

+0

谢谢您的好评! :)添加到书签! –

相关问题