Javascript 如何在jQuery上正确重写JS函数
我正在寻找一种方法,主要是在jQuery上重写这个函数,并将var list放在函数中,以防止它在.js文件中受到污染 我对上半部分有困难,无法理解如何正确重写var并单击事件侦听器以获得预期结果 谁能帮我看看吗Javascript 如何在jQuery上正确重写JS函数,javascript,jquery,Javascript,Jquery,我正在寻找一种方法,主要是在jQuery上重写这个函数,并将var list放在函数中,以防止它在.js文件中受到污染 我对上半部分有困难,无法理解如何正确重写var并单击事件侦听器以获得预期结果 谁能帮我看看吗 var d1 = document.getElementsByClassName("div_1"); var $d2 = $(".div_2"); var i; for (i = 0; i < coll.length; i++) { d1[i].addEventList
var d1 = document.getElementsByClassName("div_1");
var $d2 = $(".div_2");
var i;
for (i = 0; i < coll.length; i++) {
d1[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
} else {
if (this.nextElementSibling.classList.contains("test-class-name") && $d2.is(":empty")) {
content.style.cssText = "opacity: 0; display: block;";
// do some stuff
} else {
content.style.display = "block";
}
}
});}
var d1=document.getElementsByClassName(“div_1”);
变量$d2=$(“.div_2”);
var i;
对于(i=0;i
//更新:(如果有帮助的话,这是我目前所能做的,并叠加在eventlistener部分)
$(.div1”)。在(“单击”,函数(){
var$ss=$(“.div2”);
var i;
对于(i=0;i
不太确定,但这应该可以做到
var d1, d2;
d1 = $(".div_1");
d2 = $(".div_2");
d1.on("click", () => {
var node, content;
node = $(this);
node.toggleClass("active");
content = node.next();
if (content.css("display") === "block")
{
content.css("display", "none");
} else {
if (content.is(".test-class-name") && d2.is(":empty"))
{
content.css({ "opacity": 0, "display": "block"});
// do some stuff
} else {
content.css("display", "block");
}
}
});
请发布您对jQuery的尝试。不,不要忘记jQuery的存在,它不会解决这个问题,这是一个概念性的问题,您需要了解闭包。欢迎使用合适的javascript。“将您的函数封装在另一个函数中并从闭包返回”这是我能给出的最简短的提示。@Dellium这条评论根本没有建设性。如果OP正在使用jQuery,那么他们最好继续这样做,而不是像你告诉他们的那样用普通JS编写这段特定的代码。虽然“使用jQuery”通常是错误的建议,“不要使用jQuery”如果不是更糟的话,也可能同样糟糕。@Dellirium但OP希望在jQuery中这样做,所以要求查看他们已经尝试过的内容是完全正常的。我认为删除评论比标记第一个评论人更合适。@Archer-heard。将删除我的评论。
var d1, d2;
d1 = $(".div_1");
d2 = $(".div_2");
d1.on("click", () => {
var node, content;
node = $(this);
node.toggleClass("active");
content = node.next();
if (content.css("display") === "block")
{
content.css("display", "none");
} else {
if (content.is(".test-class-name") && d2.is(":empty"))
{
content.css({ "opacity": 0, "display": "block"});
// do some stuff
} else {
content.css("display", "block");
}
}
});