Javascript JS:美元(文档)中的函数。就绪(xx)不工作

Javascript JS:美元(文档)中的函数。就绪(xx)不工作,javascript,Javascript,我想在$(document).ready(xx)块中实现一个函数 它应该是这样的,但不起作用: $(document).ready(function () { function navTo(target) { if (target === 'into.html') { window.location.href = 'into.html'; } else if (target === 'index.html') {

我想在$(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>
点击

发生这种情况是因为您的作用域。当您设置onclick时,它将尝试在全局作用域中查找函数,因为您在document ready函数中定义了它,它将不会运行并设置为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>