【发布时间】:2020-06-09 07:23:11
【问题描述】:
我有这段使用 jQuery 的代码,我希望它是一个普通的 javascript。
我使用了自我执行功能并摆脱了$。好吧,一旦我摆脱匿名函数之前的第一个 $ 并用 vanilla JS 重写它,它就会停止工作......
$(function() {
$("#toc").append("<div id='generated-toc'></div>");
$("#generated-toc").tocify({
extendPage: true,
context: "#content",
highlightOnScroll: true,
hideEffect: "slideUp",
hashGenerator: function(text, element) {
return $(element).attr("id");
},
smoothScroll: false,
theme: "none",
selectors: $("#content").has("h1").size() > 0 ? "h1,h2,h3,h4,h5" : "h2,h3,h4,h5",
ignoreSelector: ".discrete"
});
var handleTocOnResize = function() {
if ($(document).width() < 768) {
$("#generated-toc").hide();
$(".sectlevel0").show();
$(".sectlevel1").show();
} else {
$("#generated-toc").show();
$(".sectlevel0").hide();
$(".sectlevel1").hide();
}
}
$(window).resize(handleTocOnResize);
handleTocOnResize();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
所以我这样写...但是 由于某种原因,它无法正常工作...
(function() {
document.getElementById("toc").append("<div id='generated-toc'></div>");
document.getElementById("generated-toc").tocify({
extendPage: true,
context: "#content",
highlightOnScroll: true,
hideEffect: "slideUp",
hashGenerator: function(text, element) {
return element.attr("id");
},
smoothScroll: false,
theme: "none",
selectors: document.getElementById("content").has("h1").size() > 0 ? "h1,h2,h3,h4,h5" : "h2,h3,h4,h5",
ignoreSelector: ".discrete"
});
var handleTocOnResize = function() {
if (document.width() < 768) {
document.getElementsByName("generated-toc").hide();
document.getElementsByClassName("sectlevel0").show();
document.getElementsByClassName("sectlevel1").show();
} else {
document.getElementById("generated-toc").show();
document.getElementsByClassName("sectlevel0").hide();
document.getElementsByClassName("sectlevel1").hide();
}
}
window.resize(handleTocOnResize);
handleTocOnResize();
})();
【问题讨论】:
-
仅仅删除 $ 并不能使它成为普通的 JS ...
-
您正在混合使用 Jquery 和 Javascript。这将无法按照您的方式工作。
-
请把这里的html部分也贴出来。
-
@UsmanMunir 这是用于 asciidoctor 的动态目录 (toc) 的修复程序:stackoverflow.com/questions/34481638/… 在编译时创建 toc 的位置。
-
@71GA 请给出一些我可以在答案中添加的示例 HTML
标签: javascript jquery