Jquery 链接在内部时刷新Div不起作用
我试图完成的是在不重新加载整个页面的情况下刷新DIV中的数据,但它没有按预期工作 我有这个Jquery代码: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
<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+