AJAX!更新更高级别的DIV?

时间:2014-02-12 04:08:34

标签: jquery ajax html

我正在使用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>

这可以按预期工作。 DIV #result填充了pullCRN.php的内容,实际上因为我把我的选择器作为所有锚点,它适用于我不想要的东西。但是我有它用于测试目的,因为pullCRN.php加载的代码会生成更多链接。没有发生的是#result不会使用pullCRN.php中加载的链接内容进行更新,只会更新该DIV之外的链接。这是预期的行为吗?

2 个答案:

答案 0 :(得分: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);
        });
    });

答案 1 :(得分:0)

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

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

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