Javascript返回值未定义

时间:2012-09-17 11:49:04

标签: javascript jquery function return-value

我想问一下如何从函数'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 个答案:

答案 0 :(得分:4)

函数save_value()期待一个参数。从这里开始

var create_cookie = save_value();

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

答案 1 :(得分: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);
});

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

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