我想在$(document).ready(xx)块中实现一个函数。
看起来应该是这样但不起作用:
$(document).ready(function () {
function navTo(target) {
if (target === 'into.html') {
window.location.href = 'into.html';
}
else if (target === 'index.html') {
window.location.href = 'index.html';
}
}
window.init = changeColor();
function changeColor() {
document.getElementById("url").style.color = "#000000";
}
});
如果我喜欢这样,那就有效:
$(document).ready(function () {
window.init = changeColor();
function changeColor() {
document.getElementById("url").style.color = "#000000";
}
});
function navTo(target) {
if (target === 'into.html') {
window.location.href = 'into.html';
}
else if (target === 'index.html') {
window.location.href = 'index.html';
}
}
我的相关HTML代码:
<a onClick="navTo('into.html')">click</a>
答案 0 :(得分:1)
这种情况正在发生,因为当您设置onclick时它的范围将尝试在您的全局范围内找到该函数,因为您在文档就绪函数中定义它将无法运行并被设置为undefined来解决它您可以声明它作为一个全局函数(你已经这样做了),或者你可以声明一个jQuery事件......
$(document).ready(function () {
$('.link').click(function(){
if ($(this).attr('target') === 'into.html') {
window.location.href = 'into.html';
}
else if ($(this).attr('target') === 'index.html') {
window.location.href = 'index.html';
}
});
window.init = changeColor();
function changeColor() {
document.getElementById("url").style.color = "#000000";
}
});
HTML
<a class="link" target="into.html">click</a>