我有一些简单的jQuery代码,它有一个问题。菜单处理函数根本不起作用。在jQuery中定义全局函数
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;
}
出于某种原因,该功能的工作原理,如果我把它直接内点击()这样的:
$('.TemplateMaker').click(function(){
if(clicked == false){
$(this).after($TemplateMenu);
clicked = true;
}
else{
$TemplateMenu.remove();
clicked = false;
}
});
});
什么是错的代码?我是否定义了错误的函数,或者如果函数包含jQuery元素,是否需要特殊的东西? 感谢您的帮助:-)
编辑:
我编辑的代码,包括你的球员的建议,其窗框似乎并没有工作。 代码:
var clicked = false;
$(document).ready(function(){
$TemplateMenu= $('<p class="paragraph">texxt</p><p class="p2">texxt</p>');
$('.TemplateMaker').click(menuHandler($(this)));
});
function menuHandler(obj){
if(clicked == false){
$(obj).after($TemplateMenu);
clicked = true;
}
else{
$TemplateMenu.remove();
clicked = false;
}}
我现在诺蒂奇了,jQuery抛出这个“event.returnValue已被弃用,请使用标准event.preventDefault()代替。”,但我不知道它是如何接触到我的脚本。
是什么让你觉得你的常规的普通直函数可以链接到本地DOM元素? – adeneo
使用'menuhandler()'而不是'this.menuhandler()'调用它。 – Zhihao
如何知道什么是$(this)? –