所以我有这样的代码:
<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'方法吗?
答案 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);
}