我是javascript和.net fremework的新手。请帮我解决这个问题。 这是我的代码的小片段,我正在显示一个onclick表,但我希望它在页面加载时显示。
我已经厌倦了window.onload,将代码放在标签中,将其放在$(documen).ready()中,但它们都没有工作,有人可以让我知道要修改的内容以便显示页面加载而不是onclick?
这是我的代码段:
<tr id='group11' class="group1" rel="<%# Eval("RowCount") %>">
<td colspan="6" class="description first">
<a href="javascript:void(0);" onclick="toggleCategory('#group11',<%# Eval("RowCount") %>);" class="control collapse">[-]</a>
<a href="javascript:CallDialog('<%# Eval("SummaryMessage") %>');" style= "background-color:yellow">RI [<font size="2"> <i> <%# Eval("LastRI")%> </i> </font>]
</a>
</td>
谢谢
答案 0 :(得分:0)
如果你想等到DOM元素准备就绪的常用模式是:
document.addEventListener('DOMContentLoaded', init);
function init(){
$('myElement').text('Do Stuff with the page')
}
顺便说一下:我认为它是一个反模式来模拟你的脚本,就像你在使用onclick="toggleCategory('#group11',<%# Eval("RowCount") %>);
我首选的解决方案是始终为所有请求执行相同的脚本。
在您的情况下,您可以在页面上为每个项目放置一个元素,并使用它而不是模板化的rowCount:
function toggleCategory(id, count){
...
};
var count = $('#group11 .myItem').length
toggleCategory('#group11', count)
或者您可以通过将数据添加到DOM来将数据从.NET服务器传递到javascript:
<body data-group11count="<%# Eval("RowCount") %>">
...
</body>
function toggleCategory(id, count){
...
};
var count = $('body').data('group11count');
count = Number(count);
toggleCategory('#group11', count)