如何将变量用于多个事件处理程序?

时间:2015-06-06 20:47:00

标签: javascript jquery variables

我想为一个事件处理程序设置一个变量,但是从另一个事件处理程序读取它。

就像这样:

$(document.body).on("click", ".notice", function() {
    var notice = 'You have just clicked this item.';
});
$('#save_comment').click(function() {
    alert(notice);
});

此代码导致错误

  

未捕获的ReferenceError:未定义通知

4 个答案:

答案 0 :(得分:1)

var notice更改为notice,否则它只在定义它的函数中具有范围。

答案 1 :(得分:1)

试试这个

var notice;
$(document.body).on("click", ".notice", function() {
    notice = 'You have just clicked this item.';
});
$('#save_comment').click(function() {
    alert(notice);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="notice">notice</div>
<div id="save_comment">save comment</div>

点击保存评论会将通知设置为未定义的 在点击通知

之后给出价值

答案 2 :(得分:0)

然后将其设为全局:

$(document.body).on("click", ".notice", function() {
    notice = 'You have just clicked this item.';
});
$('#save_comment').click(function() {
    alert(notice);
});

答案 3 :(得分:0)

根据您的情况,您可能会做这样的事情以避免产生全局变量。

$(document.body).on("click", ".notice", function() {
    var notice = 'You have just clicked this item.';

  $('#save_comment').data('notice',notice);
});

$('#save_comment').click(function() {
    alert($(this).data('notice'));
});