作为一个新手,我在学习JavaScript时尝试使用console.log和alert()。我发现了一个我感兴趣的网站,并将html和javascript / jquery复制到我的本地主机上来玩它。当我将console.log()和alert语句放入javascript中以帮助解决问题时,它们都没有奏效。我在多个浏览器(Chrome,Safari,Firefox)中尝试过此操作,删除浏览器历史记录等。对我来说,没有什么不寻常的代码。有什么我可能会失踪?代码运行正常(控制台中没有记录错误)。
顺便说一下,我将它复制到我的本地主机上,因为我不知道如何在Firebug中添加控制台日志。有没有办法这样做?我从console.log获得更多信息(我理解),而不是设置断点。
这是代码。它显然相当直接(虽然我仍然需要console.log才能完全获得它)。
// Global variables
var flag;
var dark;
$(document).ready(function() {
// $(function() {
// Hide all closed sections
$(".closed").next().hide();
// Add slide functions to all sections (h1 elements)
$("h1").click(function () {
if($(this).is('.closed')) {
$(".open").delay(200, function() { $(this).next().slideUp("slow"); });
$(this).delay(200, function() { $(this).next().slideDown("slow"); });
$("h1").deactivateElement();
$(this).activateElement();
}
else if($(this).is('.open')) {
$(this).delay(200, function() { $(this).next().slideUp("slow"); });
$(this).deactivateElement();
}
});
// Add a function to toggle the CSS styles
$("a#style_switcher").click(function () { flag = !flag; dark.disabled = flag; });
// Add hover functions to all sections (h1 elements)
$("h1").hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); });
// Delay the call to (slide) functions
// => http://james.padolsey.com/javascript/jquery-delay-plugin/
$.fn.delay = function(time, callback) {
jQuery.fx.step.delay = function() {};
return this.animate( { delay: 1 }, time, callback);
}
// Set an element class to 'open' or 'closed'
$.fn.activateElement = function() { switchClasses($(this), 'open', 'closed'); }
$.fn.deactivateElement = function() { switchClasses($(this), 'closed', 'open'); }
// Do this at start
initialize(console.log("farting"));
alert("hi");
$(".who").delay(600, function() { $(this).next().slideDown("slow"); });
$(".who").activateElement();
});
// Initialization function
function initialize () {
flag = true;
dark = document.getElementById("dark_css");
dark.disabled = flag;
// Set year in copyright section
document.getElementById('year').innerHTML = (new Date()).getFullYear();
}
// Utility function for switching/toggling classes
function switchClasses (element, classToAdd, classToRemove) {
element.addClass(classToAdd);
element.removeClass(classToRemove);
// De/Activate the given element
(classToAdd == 'open') ? element.addClass('active') : element.removeClass('active');
}
答案 0 :(得分:1)
回应你的头衔,这个:
window.alert = function () { }
alert('hi');
不会触发。
答案 1 :(得分:0)
initialize(console.log("farting"));
alert("hi");
这有什么神奇之处?
这里有两个问题:
您正在将参数传递给参数less function function initialize () {
,这在语法上是错误的,您不能指望该语句可以执行您想要的操作。
alert
是一个未定义的函数,您可能意味着window.alert
但是使用console.log
应该足够了,因为前一页没有兼容性图表提到:
DOM级别0.不属于任何标准。
因此,建议使用console.log
,因为它至少提供了兼容性图表。
尝试将console.log("hi");
放在自己的行上。
真正的交易是learning breakpoints。
答案 2 :(得分:0)
我建议你使用控制台本身来执行那些测试并运行一些“示例代码” Chrome控制台: https://developers.google.com/chrome-developer-tools/docs/console