调用自定义jquery方法

时间:2011-04-26 21:43:07

标签: javascript jquery

所以我有这样的代码:

<script language="javascript">
$(function(){
    function hellothere(strng){
        showalert(strng);
    }
    function showalert(showit){
        alert(showit);
    }
});
</script>
<input type="button" onclick="hellothere('hi');" value="jquery"/>

当我点击按钮时,它会抛出一个javascript错误(预期的对象)。 我也试过以下但是它们也会抛出javascript错误(Object不支持这个属性)。

<input type="button" onclick="$.hellothere('hi');" value="jquery"/>

<input type="button" onclick="$.fn.hellothere('hi');" value="jquery"/>

我错过了什么?

更新:这是正在发生的事情,以澄清alittle。 我有一个按钮:

<input type="button" class="mybutton" value="jquery"/>

在页面加载时,我使用$():

为按钮分配onclick事件
$(function(){
     $(".mybutton").click(function(){
     //Do some stuff
     mybuttoncallback(dataprocessed);

     });

     function senditoff(finaldata){
          //send the data off
     }
});

因此,此按钮位于几页上,但与处理的数据不同。所以'mybuttoncallback'是一个javascript方法,它本身就是页面本身,因为不同的页面可能会以不同的方式处理数据。

function mybuttoncallback(thedata){
    //process the data
    senditoff(hereitis);
}

'senditoff'方法在jquery代码中,因为所有页面都以相同的方式发送它。 我宁愿不从$()中移出任何东西,因为许多页面都必须改变。 ('senditoff'方法是前一个例子中的'hellothere'方法。)

那么javascript方法可以调用jquery'senditoff'方法吗?

3 个答案:

答案 0 :(得分:2)

如果你真的需要扩展jQuery对象,试试这个:

<script language="javascript">
$.hellothere = function(strng){ alert(strng); }
</script>
<input type="button" onclick="$.hellothere('hi');" value="jquery"/>

答案 1 :(得分:0)

试试这个。您不需要jquery的任何特殊属性来执行此操作。

<script language="javascript">        
     function hellothere(strng){
        alert(strng);
     }       
</script>
<input type="button" onclick="hellothere('hi');" value="jquery"/>

答案 2 :(得分:0)

将此功能移出document.ready以使其成为全局

由于范围问题,您收到错误。

  function hellothere(strng){
                alert(strng);
            }