正如标题所示,我在回发时维护代码时遇到了问题。我在Head部分有一堆jQuery代码,这个工作正常,直到发生回发,之后它停止运行!
我该如何解决这个问题?头部没有在回发上阅读,有没有办法可以强迫这种情况发生?
JavaScript是:
<script type="text/javascript">
$(document).ready(function()
{
$('.tablesorter tbody tr').tablesorter();
$('.tablesearch tbody tr').quicksearch({
position: 'before',
attached: 'table.tablesearch',
stripeRowClass: ['odd', 'even'],
labelText: 'Search:',
delay: 100
});
});
</script>
答案 0 :(得分:6)
如果您只是将该代码硬编码到您的页面头部,那么回帖不会影响它。我将通过调试检查以下内容(FireFox中的FireBug是一个很好的调试器):
编辑:您是否使用UpdatePanels进行回发?换句话说,这是异步回发还是普通的整页刷新?
编辑编辑:啊......好吧。因此,如果您正在使用UpdatePanels,那么文档的就绪状态已经准备就绪,因此不会再次触发jquery代码的一部分。我会将jquery委托提取到一个单独的函数,您也可以在异步回发后调用它。答案 1 :(得分:2)
将您的代码放入
function pageLoad(sender, args) {
/* code here */
}
而不是$(document).ready(function() { ... });
pageLoad()
是一个将在所有回发,同步和异步之后执行的函数。有关更多详细信息,请参阅此答案
答案 2 :(得分:1)
我猜测回发预先占用了页面的onLoad事件,jQuery需要挂钩才能使用它.ready()。
答案 3 :(得分:1)
alert('test');
答案 4 :(得分:0)
您应该将代码放在名为pageLoad()的函数中,而不是使用$(document).ready。按照惯例,只要页面有回发/异步后退,就会调用pageLoad()函数。