Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery时我可以调用实例函数吗_Javascript_Jquery - Fatal编程技术网

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。