2014-02-12 36 views
0

我正在使用jQuery来触发几个嵌套的脚本。我期望jQuery脚本能够应用到被调用的脚本,但是我得到了意想不到的行为 - 没有更新。以下是清晰度代码:AJAX!更新更高级的DIV?

 <div id="crnNav" class="centered"> 
      <?foreach ($CRNs as $crn) { 
       echo '[<a href="pullCRN.php?crn='.$crn.'">'.$crn.']</a> '; 

      } unset($crn);?> 
     </div> 

     <div id="result"> 
      <!-- class data porn goes here --> 
     </div> 

<!-- controller logic --> 
<script> // function updates content 
    $('a').click(function(){ 
     event.preventDefault(); 
     var href = $(this).attr('href'); 

     $.get(href, function(data) { 
      $("#result").load(href); 
     }); 
    }); 
</script> 

这可按预期工作。 DIV #result填充了pullCRN.php的内容,事实上,因为我有我的选择器作为所有锚点,它适用于我不想要的东西。但是为了测试的目的,我将它放在那里,因为通过pullCRN.php加载的代码会生成更多链接。什么不会发生#result不会更新与加载在pullCRN.php中的链接的内容,只有该DIV之外的链接。这是预期的行为?

回答

0

的解决我的问题是重写的语法如下处理程序:

$(document).on(events, selector, data, handler); 

这将我的处理程序绑定到动态添加到页面的新元素。

0

你已经忘了将事件作为参数

$('a').click(function(){//here and without parameter this wouldn't work 

所以,使用此:

$('a').click(function(event){ 
     event.preventDefault(); 
     var href = $(this).attr('href'); 

     $.get(href, function(data) { 
      $("#result").load(href); 
     }); 
    }); 
+0

感谢您的回复@ C-link,但是,这种代码更改没有明显的效果。除了在#result DIV内部生成的代码外,该函数在没有参数的情况下工作。此外,我是jQuery语法的新手,所以我没有遵循你可能一直试图用你的答案领导的地方。 – jschavey

+0

编辑:我在被调用的元素中发现了一个冲突的脚本。快速修复看起来确实存在行为上的变化。 – jschavey

+0

然后使用jQuery.noConflict();太。 –