修改onclick到onload的功能

时间:2015-04-06 22:32:21

标签: javascript jquery asp.net

我是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>

谢谢

1 个答案:

答案 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)