gpt4 book ai didi

javascript - 在 jQuery 中全局定义一个函数

转载 作者:行者123 更新时间:2023-11-28 19:56:16 24 4
gpt4 key购买 nike

我有一些简单的 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;
}

出于某种原因,如果我将它直接放在 click() 中,该函数就会起作用,如下所示:

    $('.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()代替。”,但我不知道它如何与我的脚本联系。

最佳答案

$('.TemplateMaker').click();
this.menuhandler();
});

尝试将 this.menuhandler(); 替换为 menuhandler(); ,如下所示:

$('.TemplateMaker').click();
menuhandler();
});

编辑:回应您的评论。尝试在原始代码的 menuhandler() 中使用 this 而不是 $(this)

关于javascript - 在 jQuery 中全局定义一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22492426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com