Jquery AJAX更新更高级别的DIV?

Jquery AJAX更新更高级别的DIV?,jquery,ajax,html,Jquery,Ajax,Html,我正在使用jQuery触发一些嵌套脚本。我本来希望jQuery脚本应用于被调用的脚本,但是我得到了意想不到的行为——没有更新。以下是清晰的代码: <div id="crnNav" class="centered"> <?foreach ($CRNs as $crn) { echo '[<a href="pullCRN.php?crn='.$crn.'">'.$crn.']</a> '

我正在使用jQuery触发一些嵌套脚本。我本来希望jQuery脚本应用于被调用的脚本,但是我得到了意想不到的行为——没有更新。以下是清晰的代码:

        <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>

//函数更新内容
$('a')。单击(函数(){
event.preventDefault();
var href=$(this.attr('href');
$.get(href,函数(数据){
$(“#结果”).load(href);
});
});

这正如预期的那样有效。DIV#result用pullCRN.php的内容填充,事实上,由于我将选择器作为所有锚点,它适用于我不想要的东西。但是我把它放在那里是为了测试,因为pullCRN.php加载的代码会生成更多的链接。没有发生的是#结果不会随着pullCRN.php中加载的链接内容更新,只会更新该DIV之外的链接。这是预期的行为吗?

您忘记将事件作为参数放置

$('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);
        });
    });

我的问题的解决方案是使用以下语法重写处理程序:

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

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

感谢您的回复@C-link,但是,此代码更改没有明显的效果。除了在#result DIV中生成的代码外,该函数在没有参数的情况下在所有区域都能正常工作。此外,我对jQuery语法还不熟悉,因此我不了解您可能试图引导答案的地方。EDIT:我在被调用的元素中发现了一个冲突的脚本。快速修复看起来行为确实发生了变化;所以,在我维护一个通用选择器的同时,添加事件参数也是有效的。当我将其更改为所需子类的多选择器时,它会停止函数,代码甚至不会执行。我之所以知道这一点,是因为链接的加载就像是纯HTML一样,即event.preventDefault();从来没有人打过电话@C-link$('a.crn,a.snumber')。单击(函数(事件){EDIT:a.crn在父DOM中,a.snumber在以前调用#result div的代码中,这不是原因。无论如何,请尝试使用event.stopPropagation或返回false;last