Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 链接在内部时刷新Div不起作用_Jquery - Fatal编程技术网

Jquery 链接在内部时刷新Div不起作用

Jquery 链接在内部时刷新Div不起作用,jquery,Jquery,我试图完成的是在不重新加载整个页面的情况下刷新DIV中的数据,但它没有按预期工作 我有这个Jquery代码: <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document).ready(function() { $('#Col1').on('click', function() { var url = 'PurchaseRequestLi

我试图完成的是在不重新加载整个页面的情况下刷新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>

$(文档).ready(函数(){
$('#Col1')。在('click',function()上{
var url='PurchaseRequestList.asp?order2=PRID';
$('div1包装器')。加载(url+'div1');
}); 
});
下面是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>

专栏1
专栏2
第3栏
专栏4
如果我将链接(下面)移到DIV之外,它将工作。但是,如果下面的链接位于正在刷新数据的DIV内部,它只在第一次单击时有效,然后停止工作

<a id="Col1">Column1</a>
Column1
如果可能,请提供示例代码帮助。

只需更改:

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


这是直接事件与委托事件的老论点。通过使用委托事件,您可以确保动态添加的元素维护该事件链。在较新的版本中,如您的示例中所示(使用.on),您可以将
.on
委托给要目标元素的父元素或文档本身。许多人认为针对
文档
是不好的做法,因为他们声称
开销
问题。就我个人而言,自从.on推出以来,我就一直在使用这种方法。我已经在至少3个每天访问数千名观众的节目中使用过这种方法,并且没有一次投诉。我说,除非你正在制作一个只支持JS的视频游戏,否则请坚持使用
$(文档)
,因为它更容易跟上,并且允许你根据需要不断地“委托事件”,而不必回忆
$(文档)




您必须将事件委托给最近的静态容器:
$('div1 wrapper')。在('click','Col1',function(){…})上请参考这里的答案,更多文档:
live('click',function())
适用于旧版本的jQuery@A.Wolff我认为否决票是因为绑定到
#div1包装器
比绑定文档更好。@BlakePlumb正确,这就是为什么否决票可以解释它,至少IMHO。现在,我感谢SpYk3HHedit@A.Wolff“更好”如果你能看到我的话,这是个争论的问题update@milacay这就是我来这里的目的:)。。。我在JS和jQuery方面有多年的经验,所以其中之一就是purty ez。请随时提问,欢迎光临!
$(document).on('click', '#Col1', function(e) {
$( selector ).live( events, data, handler );                // jQuery 1.3+
$( document ).delegate( selector, events, data, handler );  // jQuery 1.4.3+
$( document ).on( events, selector, data, handler );        // jQuery 1.7+