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

答えのためのThx。

4

4 に答える 4

4

関数save_value()はパラメーターを期待しています。ここから

var create_cookie = save_value();

関数に値を渡さない場合は、が返されるundefinedため、変数のcreate_cookie値も返されundefinedます。

于 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引数は未定義になります。したがって、関数はundefinedを返します。

また、呼び出された変数を使用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 に答える