当链接在里面时刷新Div不工作

时间:2013-11-19 19:22:58

标签: jquery

我尝试完成的是刷新DIV中的数据而不重新加载整个页面,但它没有按预期工作。

我有这个Jquery代码:

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script> 
$(document).ready(function() {
    $('#Col1').on('click', function() {
    var url = 'PurchaseRequestList.asp?order2=PRID';        
    $('#div1-wrapper').load(url + ' #div1'); 
    }); 
});
</script>

以下是HTML代码

<div id="div1-wrapper">
    <div id="div1" style="border:solid 1px red; width: 100%;"> 
        <table width="90%" align="center" class="RowDetail">
            <tr>
                <td><a id="Col1">Column1</a></td>
                <td>Column2</td>
                <td>Column3</td>
                <td>Column4</td>
            </tr>
    </div>
</div>

如果我将链接(下方)移到DIV之外,它将起作用。但是,如果下面的链接位于正在使用数据刷新的DIV内部,则它仅适用于第一次单击,并在此之后停止工作。

<a id="Col1">Column1</a>

如果可能,请帮助您提供示例代码。

1 个答案:

答案 0 :(得分:3)

只需改变:

$('#Col1').on('click', function() {

$(document).on('click', '#Col1', function(e) {

这是直接与委派事件的旧论点。通过使用委派事件,您可以确保动态添加的元素维护该事件链。在较新的版本中,例如您的示例中所示(使用.on),您可以将.on委派给要定位的元素的或文档本身。许多人认为定位document是不好的做法,因为他们声称有overhead个问题。就个人而言,自从.on被引入以来,我一直在使用这种方法,已经在至少3个程序中使用它,每天看到成千上万的访问者,并且没有一个投诉。我说,除非你制作一个只有JS的视频游戏,坚持使用$(document)因为它更容易跟上,并允许你根据需要不断“chain”委托事件而不记得{{} 1}}


$(document)

Example