我有一个包含许多按钮的表:
<tr class="hr-table-cell" >
<td>REcord 1</td>
<td>
<INPUT type="button" value="Approve" onclick="" />
<INPUT type="button" value="Reject" onclick="" />
<INPUT type="button" value="Delete" onclick="fnDeletePpAppl(222445,704);" />
</td>
</tr>
<tr class="hr-table-cell" >
<td>REcord 1</td>
<td align="center" class="hr-table-bottom-blue-border" valign="middle">
<INPUT type="button" value="Approve" onclick="" />
<INPUT type="button" value="Reject" onclick="" />
<INPUT type="button" value="Delete" onclick="fnDeletePpAppl(237760,776);" />
</td>
</tr>
我的jquery是这样的:
<script type="text/javascript"> // JQUERY stuff
$(document).ready(function(){
function fnDeletePpAppl(empno, applno) {
alert('Entering here');
$("form").get(0).empno.value = empno;
$("form").get(0).applNo.value = applno;
$("form").get(0).listPageAction.value = "delete";
$("form").get(0).action.value = "pprelreqlist.do";
$("form").get(0).submit();
}
});
这似乎不起作用。我认为这意味着,只有在dom准备就绪后,该功能才准备就绪。在dom准备就绪后我单击按钮,为什么不识别.ready()函数中的函数声明?但是,如果我直接使用该功能:
<script type="text/javascript">
function fnDeletePpAppl(empno, applno) {
alert('Entering here');
$("form").get(0).empno.value = empno;
$("form").get(0).applNo.value = applno;
$("form").get(0).listPageAction.value = "delete";
$("form").get(0).action.value = "pprelreqlist.do";
$("form").get(0).submit();
}
这很有效。我想在这里直接得到我的基础...如果我在没有.ready()的情况下做声明,这是否意味着我使用普通的香草jscript?
如果我要使用document.ready(通常的jquery声明方式)执行此操作,我需要更改哪些才能使其正常工作?
我知道有更好的方法来做这个,比如用按钮等绑定,但我想知道为什么这种特殊的方式似乎不起作用。感谢。
干杯。 K
答案 0 :(得分:3)
通过在ready
之外声明函数,您在全局范围内声明它,因此DOM声明可以访问它。
否则,如果在ready
内声明它,则声明一个与ready
范围“私有”的函数 - 此函数之外的任何内容都可以看到声明。
答案 1 :(得分:1)
$(document).ready()是在DOM准备好后执行javascript ONCE。在您的情况下,您只是定义一个函数,它是dom的一部分,应该在页面渲染时完成。
例如,如果您想在首次加载页面时调用函数:
$(document).ready(function() {
myCoolFunction();
});
您还可以像这样执行$(document).ready():
$(function() {
myCoolFunction();
});