我有一个带有一堆按钮的 table ,如下所示:
<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 声明方式,我需要更改什么才能使其工作?
我知道有更好的方法可以做到这一点,例如与按钮绑定(bind)等,但我想知道为什么这种特殊的方法似乎不起作用。谢谢。
干杯。 K
最佳答案
通过在 ready
之外声明函数,您可以在全局范围内声明它,因此可以通过 DOM 声明访问它。
否则,如果您在 ready
内声明它,则您将声明一个在 ready
范围内“私有(private)”的函数 - 该函数之外的任何内容都无法看到该函数声明。
关于带参数的 jquery 函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2897934/