从onchange事件处理程序中提取变量以供其他函数使用



我有一个事件处理程序监听下拉菜单中的变化并设置变量的值。我已经将变量声明为全局变量,即在任何函数之外,然后在更改时设置值。然而,一旦它改变了,我需要能够在其他函数中拾取变量(而不是在偶数处理程序中)。我如何从事件处理程序中"提取"它?我试图返回它,但没有运气-这是代码:

$(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);   

日志只是显示'空字符串',我很困惑。如果可能的话,我不想重新调整代码,以包括事件处理程序中的一切(有很多的谷歌地图生成代码在那里,它会使一个痛苦)-我只需要得到主题变量的事件处理程序,如果这是有意义的-谢谢

通过使用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;
});

相关内容

  • 没有找到相关文章

最新更新