带参数的jquery函数调用

时间:2010-05-24 15:08:05

标签: jquery javascript

我有一个包含许多按钮的表:

<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

2 个答案:

答案 0 :(得分:3)

通过在ready之外声明函数,您在全局范围内声明它,因此DOM声明可以访问它。

否则,如果在ready内声明它,则声明一个与ready范围“私有”的函数 - 此函数之外的任何内容都可以看到声明。

答案 1 :(得分:1)

$(document).ready()是在DOM准备好后执行javascript ONCE。在您的情况下,您只是定义一个函数,它是dom的一部分,应该在页面渲染时完成。

例如,如果您想在首次加载页面时调用函数:

$(document).ready(function() {

   myCoolFunction();

});

您还可以像这样执行$(document).ready():

$(function() {
   myCoolFunction();
});