我对Javascript编码没有经验。但是,我愿意学习。
我遇到了一些用于创建崩溃/展开<div>
块的教程。我用jsfiddle测试了代码。您可以查看代码here
它工作正常,无视造型。 但是,我无法弄清楚为什么代码在实时网站上不起作用。
首先,我在WordPress页面编辑器中插入了所有代码javascript和HTML。然后,我在标题中移动了javascript。我看到了有关代码来源的一些信息。我不确定是哪个来源。
以下是header.php中插入的javascript代码:
<script type="text/javascript" language="javascript" src="http://example.com/wp-content/themes/crimson/scripts/jquery.min.js">
function toggle2(showHideDiv, switchTextDiv) {
var ele = document.getElementById(showHideDiv);
var text = document.getElementById(switchTextDiv);
if (ele.style.display == "block") {
ele.style.display = "none";
text.innerHTML = "expand";
}
else {
ele.style.display = "block";
text.innerHTML = "collapse";
}
}
function toggle3(contentDiv, controlDiv) {
if (contentDiv.constructor == Array) {
for (i = 0; i < contentDiv.length; i++) {
toggle2(contentDiv[i], controlDiv[i]);
}
}
else {
toggle2(contentDiv, controlDiv);
}
}
</script>
HTML代码与fiddle HTML面板上的相同,我在WordPress页面中显示。
请告诉我这段代码有什么问题?它是javascript代码的来源吗?
Chrome控制台为我提供了以下内容:
未捕获的ReferenceError:toggle2未定义example.com:103 的onclick
最大的问题是为什么代码在mosools或jquery框架上的jsfiddle工作正常,而且它在现场网站上不起作用?
更新: 我更新了脚本标签。仍然无效。
答案 0 :(得分:2)
您需要将您的Javascript代码放在自己的代码中。
<script type="text/javascript" language="javascript" src="http://example.com/wp-content/themes/crimson/scripts/jquery.min.js">
<script type="text/javascript">
YOUR CODE HERE
</script>
此外,由于您使用的是jQuery,因此您需要使用ready()函数,如下所示:
$(function(){
YOUR CODE HERE
});
<a href="#" id="clickme">Click</a>
<div id="d1">Some content to hide</div>
头脑中:
<script type="text/javascript">
$(document).ready(function(){
$("#clickme").toggle(function(){
$("#d1").show();
},
function(){
$("#d1").hide();
}
);
});
</script>
当然,在代码中保留对jQuery的引用。
答案 1 :(得分:1)
你有一些问题:
试试这个,更正脚本标签:
<script type="text/javascript" language="javascript" src="http://example.com/wp-content/themes/crimson/scripts/jquery.min.js"></script>
<script type="text/javascript">
function toggle2(showHideDiv, switchTextDiv) {
var ele = document.getElementById(showHideDiv);
var text = document.getElementById(switchTextDiv);
if (ele.style.display == "block") {
ele.style.display = "none";
text.innerHTML = "expand";
}
else {
ele.style.display = "block";
text.innerHTML = "collapse";
}
}
function toggle3(contentDiv, controlDiv) {
if (contentDiv.constructor == Array) {
for (i = 0; i < contentDiv.length; i++) {
toggle2(contentDiv[i], controlDiv[i]);
}
}
else {
toggle2(contentDiv, controlDiv);
}
}
</script>