单击链接调用javascript函数

单击链接调用javascript函数,javascript,jquery,html,asp.net-mvc,cookies,Javascript,Jquery,Html,Asp.net Mvc,Cookies,我想在用户单击链接时设置cookie值。 我正在使用以下代码: <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <script src="../../Scripts/jquery.cookie.js" type="text/javascript"></script> <script type="text/javascript"> $(docum

我想在用户单击链接时设置cookie值。 我正在使用以下代码:

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="../../Scripts/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {

        function changeLang(lang) {
            $.cookie('myCulture', lang);
            window.location.reload();
            return false;
        }
    });

</script>

我哪里做错了???

在jquery块之外定义函数

$(document).ready(function () {
});

function changeLang(lang) {
        $.cookie('myCulture', lang);
        window.location.reload();
        return false;
    }

在jquery块之外定义函数

$(document).ready(function () {
});

function changeLang(lang) {
        $.cookie('myCulture', lang);
        window.location.reload();
        return false;
    }

请不要像这样在html中附加js函数。 您正在使用jquery,因此只需执行以下操作:

$(document).ready(function () {

    function changeLang() {
        $.cookie('myCulture', $(this).data('lang'));
        window.location.reload();
        return false;
    }
    $('.link').on('click', changeLang);
});
然后在html中:

<a href="#" data-lang="da-DK">...</a>

请不要像这样在html中附加js函数。 您正在使用jquery,因此只需执行以下操作:

$(document).ready(function () {

    function changeLang() {
        $.cookie('myCulture', $(this).data('lang'));
        window.location.reload();
        return false;
    }
    $('.link').on('click', changeLang);
});
然后在html中:

<a href="#" data-lang="da-DK">...</a>

尝试将ChangeLang函数移到文档就绪部分之外。 此外,如果在FireFox中运行Firebug,您可以直接从控制台执行该函数


祝您好运

尝试将ChangeLang函数移到文档就绪部分之外。 此外,如果在FireFox中运行Firebug,您可以直接从控制台执行该函数


祝您好运

您正在文档就绪范围内定义函数,因此它不是全局的,因此在全局范围内不可用

只需删除var声明或使用window.changeLang=函数即可将其定义为全局变量

 $(document).ready(function () {

       changeLang = function(lang) {
            document.cookie = 'myCulture' + lang;
            window.location.reload();
            return false;
        }
    });

您正在文档就绪范围内定义函数,因此它不是全局的,因此在全局范围内不可用

只需删除var声明或使用window.changeLang=函数即可将其定义为全局变量

 $(document).ready(function () {

       changeLang = function(lang) {
            document.cookie = 'myCulture' + lang;
            window.location.reload();
            return false;
        }
    });
这对你有用


这对您很有用。

将您的函数重新定位到文档外的Ready将您的函数重新定位到文档外的readyTypeError:$。cookie不是函数是的,我有该文件。我从这里获取:TypeError:$。cookie不是函数是的,我有文件。我从这里取的: