Javascript 在jQuery中全局定义函数
我有一些简单的jQuery代码,但它有一个问题。菜单处理函数根本不起作用Javascript 在jQuery中全局定义函数,javascript,jquery,function,Javascript,Jquery,Function,我有一些简单的jQuery代码,但它有一个问题。菜单处理函数根本不起作用 var clicked = false; $(document).ready(function(){ $TemplateMenu= $('<p class="paragraph">texxt</p>'); $('.TemplateMaker').click(); this.menuhandler(); }); }); function menuhandler(
var clicked = false;
$(document).ready(function(){
$TemplateMenu= $('<p class="paragraph">texxt</p>');
$('.TemplateMaker').click();
this.menuhandler();
});
});
function menuhandler(){
if(clicked == false){
$(this).after($TemplateMenu);
clicked = true;
}
else{
$TemplateMenu.remove();
clicked = false;
}
这个代码有什么问题?如果函数包含jQuery元素,我是否定义了错误的函数,或者我是否需要一些特殊的东西?
谢谢你的帮助:-)
编辑:
我编辑代码以包含你们的建议,它似乎不起作用。
代码:
var=false;
$(文档).ready(函数(){
$TemplateMenu=$('texxt
texxt
);
$('.TemplateMaker')。单击(菜单句柄($(此));
});
函数menuHandler(obj){
如果(单击==false){
$(obj).after($TemplateMenu);
单击=真;
}
否则{
$TemplateMenu.remove();
单击=假;
}}
现在我注意到jquery抛出了这个“event.returnValue已弃用。请改用标准event.preventDefault()”,但我不知道它与我的脚本的联系如何
$('.TemplateMaker').click();
this.menuhandler();
});
尝试替换this.menuhandler()仅使用menuhandler()如下所示:
$('.TemplateMaker').click();
menuhandler();
});
编辑:回应您的评论。尝试在原始代码的menuhandler()中使用this而不是$(this)
尝试替换this.menuhandler()仅使用menuhandler()如下所示:
$('.TemplateMaker').click();
menuhandler();
});
编辑:回应您的评论。尝试在原始代码的menuhandler()中使用this而不是$(this)
尝试替换this.menuhandler()仅使用menuhandler()如下所示:
$('.TemplateMaker').click();
menuhandler();
});
编辑:回应您的评论。尝试在原始代码的menuhandler()中使用this而不是$(this)
尝试替换this.menuhandler()仅使用menuhandler()如下所示:
$('.TemplateMaker').click();
menuhandler();
});
编辑:回应您的评论。尝试在原始代码的menuhandler()中使用this而不是$(this)。您可能希望在有人单击按钮时启动menuhandler函数?然后,您只需按如下方式更改代码:
$('.TemplateMaker').click(menuHandler);
编辑:
您基本上有两种选择:
选项1:
您不必传递$(this)
将代码更改为this(如果选择此方法,请确保删除menuHandler函数中的参数):
你可能想让menuHandler函数在有人点击按钮时启动?然后,您只需按如下方式更改代码:
$('.TemplateMaker').click(menuHandler);
编辑:
您基本上有两种选择:
选项1:
您不必传递$(this)
将代码更改为this(如果选择此方法,请确保删除menuHandler函数中的参数):
你可能想让menuHandler函数在有人点击按钮时启动?然后,您只需按如下方式更改代码:
$('.TemplateMaker').click(menuHandler);
编辑:
您基本上有两种选择:
选项1:
您不必传递$(this)
将代码更改为this(如果选择此方法,请确保删除menuHandler函数中的参数):
你可能想让menuHandler函数在有人点击按钮时启动?然后,您只需按如下方式更改代码:
$('.TemplateMaker').click(menuHandler);
编辑:
您基本上有两种选择:
选项1:
您不必传递$(this)
将代码更改为this(如果选择此方法,请确保删除menuHandler函数中的参数):
是什么让你认为你的普通函数可以链接到一个本地DOM元素?用
menuhandler()
调用它,而不是this.menuhandler()
。那么它怎么知道$(this)是什么呢?你可以做menuhandler($(this))
和函数menuhandler(引用的元素){}
是什么让你认为你的普通直函数可以链接到本地DOM元素?使用menuhandler()
调用它,而不是this.menuhandler()
。那么它如何知道$(this)是什么呢?你可以做menuhandler($(this))
和函数menuhandler(引用的元素){}
是什么让你认为你的普通直函数可以链接到本地DOM元素?使用menuhandler()
调用它,而不是this.menuhandler()
。那么它如何知道$(this)是什么呢?你可以做menuhandler($(this))
和函数menuhandler(引用的元素){}
是什么让你认为你的普通直函数可以链接到本地DOM元素?使用menuhandler()
调用它,而不是this.menuhandler()
。那么它如何知道$(this)是什么呢?你可以做menuhandler($(this))
和函数menuhandler(引用的元素){}
它不工作。我不确定它是否会工作,因为我认为它不再知道$this是什么。请尝试在原始代码的menuhandler()中使用this而不是$(this)。这不会解决他的问题。他希望有人单击$('.TemplateMaker')
时调用menuhandler
。他有两个选项,他可以将$(this)
引用作为参数调用传递给函数,或者直接在单击
处理程序中调用函数。这不起作用。我不确定它是否会工作,因为我认为它不再知道$this是什么。请尝试在原始代码的menuhandler()中使用this而不是$(this)。这不会解决他的问题。他希望有人单击$('.TemplateMaker')
时调用menuhandler
。他有两个选项,他可以将$(this)
引用作为参数传递给函数