1

我想问一下如何从函数“save_value”返回变量“get_cookies”。然后在 mouseleave 事件中写入它的值。

函数“get_cookies”将保存输入的更改。我认为错误是作为回报。

对不起,我的英语不好。

这是代码:

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script src="jquery.cookie.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            function save_value(value) {
                var get_cookie = value;
                return get_cookie;
            };

            $('#submit_value').live('click', function() {
                var get_value = $('#get_value').val();
                save_value(get_value);
            });

            $(document).mouseleave(function() {
                var create_cookie = save_value();
                console.log('save: ' + create_cookie);
            });
        });
    </script>
</head>
<body>
    <input type="text" id="get_value" />
    <input type="button" id="submit_value" value="Click" />
    <div></div>
</body>

控制台日志:

save: undefined

谢谢回答。

4

4 回答 4

4

该函数save_value()需要一个参数。从这里开始

var create_cookie = save_value();

你没有将值传递给函数,它会返回undefined,因此变量create_cookieundefined也是

于 2012-09-17T11:51:20.603 回答
1

您的 save_value() 函数需要一个输入参数,因此 save_value() 本身是未定义的。

你的意思是这样做吗?

$(document).mouseleave(function() {
    var get_value = $('#get_value').val();
    var create_cookie = save_value(get_value);
    console.log('save: ' + create_cookie);
});
于 2012-09-17T11:52:22.987 回答
1

这很简单:您的函数function save_value(value)接受value参数,将其分配给变量,然后返回该变量。当你在没有参数的情况下调用它时,就像你在这里做的:var create_cookie = save_value();value参数将是未定义的。因此,该函数返回未定义。

另外:使用调用的变量cookie不会设置 cookie。为此,您必须使用localStorage.setItem('cookieName','cookieValue');

于 2012-09-17T11:52:51.847 回答
0

由于您使用的是最新的 jQuery 版本,因此不应使用live()函数,因为它在 jQuery 1.7 中已被弃用。

无论如何,你的问题是不同的。你的save_value函数什么都不做。只需创建一个变量并返回其值。但是您不传递任何参数,因此它返回默认值:undefined

于 2012-09-17T11:52:47.013 回答