Javascript 使用jQuery时我可以调用实例函数吗
我有两种方法,一种是内部方法,另一种是实例方法, 当我调用我的内部函数(Javascript 使用jQuery时我可以调用实例函数吗,javascript,jquery,Javascript,Jquery,我有两种方法,一种是内部方法,另一种是实例方法, 当我调用我的内部函数(onkeydown=“javascript:return checkChatBoxInputKey();”)时,它工作得很好, 但是当我试图激活onclick事件(onclick=“this.CloseChatBox();)时,我得到以下错误: 0x800a01b6-Microsoft JScript运行时错误:对象不支持 属性或方法“CloseChatBox” 这是我的密码: function ChatBox(){
onkeydown=“javascript:return checkChatBoxInputKey();”
)时,它工作得很好,但是当我试图激活
onclick
事件(onclick=“this.CloseChatBox();
)时,我得到以下错误:
0x800a01b6-Microsoft JScript运行时错误:对象不支持
属性或方法“CloseChatBox”
这是我的密码:
function ChatBox(){
// Methods
this.CloseChatBox = ChatBox.CloseChatBox;
// Adding new chat box to page
$(" <div />").attr("id", "chatbox")
.html('<div class="chatboxhead">' +
'<a href="javascript:void(0)" title="Close chat box" onclick="this.CloseChatBox();">X</a>' + // This line fails to work
'</div>' +
'<div class="chatboxbody">' +
'<textarea onkeydown="javascript:return checkChatBoxInputKey();"></textarea>' +
'</div>')
.appendTo($("body"));
$("#chatbox_" + this.CallId).show();
return true;}
function checkChatBoxInputKey(){
alert("checkChatBoxInputKey");}
ChatBox.CloseChatBox = function (){
alert("CloseChatBox");}
函数聊天盒(){
//方法
this.CloseChatBox=ChatBox.CloseChatBox;
//将新聊天框添加到页面
$(“”)attr(“id”,“聊天盒”)
.html(“”+
“”+//此行无法工作
'' +
'' +
'' +
'')
。附件($(“正文”);
$(“#聊天室”+this.CallId).show();
返回true;}
函数checkChatBoxInputKey(){
警报(“checkChatBoxInputKey”);}
ChatBox.CloseChatBox=函数(){
警报(“CloseChatBox”);}
我能做什么?在
点击,这是
JavaScript(位于聊天框
函数外部,位于$(文档)内部。就绪
):
$('a.closeChatBox')。单击(函数(){
CloseChatBox();
});
谢谢,那么我如何调用我的函数呢?我认为如果有多个ChatBox
实例,那就不行了。在这种情况下,我需要将ChatBox
重写为jQuery插件。@bfavaretto:这可能是个更好的主意。我想你也可以将元素传递给CloseChatBox
函数。ChatBox.CloseChatBox(这);
$(“”).attr(“id”,“chatbox”)
,请确保没有多个元素具有相同的id。