![](/img/trans.png)
[英]How to correctly use a variable in Event Handler functions in javascript
[英]Extracting variable from onchange event handler for use in other functions
我有一个事件处理程序,侦听下拉列表中的更改并设置变量的值。 我已经将变量声明为全局变量,即在任何函数之外,然后在更改时设置值。 但是,一旦更改,我就需要能够在其他函数中(而不是在偶数处理程序中)拾取该变量。 我如何从事件处理程序中“提取”它? 我试图将其退回,但没有运气-这是代码:
$(document).on('change', 'select#search_subject', function () {
if ($('#sBar3').show()) {
$('#sBar3').hide();
}
var subject = $('#search_subject>option:selected').text();
var id = $('#search_subject>option:selected').val();
ajaxSubject(subject, '#sBar3');
return subject;
});
console.log(subject);
日志仅显示“空字符串”,我感到困惑。 如果可能的话,我不想更改代码以将事件处理程序中的所有内容都包含进去(那里有很多Google Map生成代码,这会很麻烦)-我只需要从事件处理程序中获取subject变量即可很有道理-谢谢
通过使用var
关键字,您可以创建一个新的局部变量,然后将其分配给主题文本。 如果您已经在全局范围内定义了subject
,那么您的任务行应该简单地是:
subject = $('#search_subject>option:selected').text();
如果选择不是稍后创建的,那么在删除使主题成为本地的var
之后,这将是更简单的代码
$("#search_subject").on('change',function () {
$('#sBar3').toggle();
subject = $('option:selected',this).text();
var id = $(this).val(); // not used?
ajaxSubject(subject, '#sBar3');
window.console && console.log(subject);
return subject;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.