我想为一个事件处理程序设置一个变量,但是从另一个事件处理程序读取它。
就像这样:
$(document.body).on("click", ".notice", function() {
var notice = 'You have just clicked this item.';
});
$('#save_comment').click(function() {
alert(notice);
});
此代码导致错误
未捕获的ReferenceError:未定义通知
答案 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'));
});