Javascript 为什么这个onchange-select选项和函数运行多个jQuery[非常混乱]
我在选择选项更改后运行函数,但为什么函数在选择选项多次更改后运行多次 $document.readyfunction{ $document.on'change'、'bbp\u forum\u id',函数E{ var值=$this.val; 选择_valuevalue; }; 变量选择值=函数值{ $'bbp_主题标签'。在'keyup'上,函数{ console.log$this.val+值; }; } }; 选择 A. B CJavascript 为什么这个onchange-select选项和函数运行多个jQuery[非常混乱],javascript,jquery,Javascript,Jquery,我在选择选项更改后运行函数,但为什么函数在选择选项多次更改后运行多次 $document.readyfunction{ $document.on'change'、'bbp\u forum\u id',函数E{ var值=$this.val; 选择_valuevalue; }; 变量选择值=函数值{ $'bbp_主题标签'。在'keyup'上,函数{ console.log$this.val+值; }; } }; 选择 A. B C 问题是因为每次更改select时都要附加一个新的keyup事件
问题是因为每次更改select时都要附加一个新的keyup事件处理程序 要解决这个问题,您只需要删除change事件处理程序并在加载时附加keyup处理程序。然后,当按下每个键时,您可以从选择中读取值,如下所示: $'bbp_主题标签'。在'keyup'上,函数{ console.log$this.val+$'bbp_forum_id'.val; }; 选择 A. B C
这里的问题是,当您更改下拉列表时,将新的keyup事件添加到输入中
$(document).ready(function() {
$(document).on('change', '#bbp_forum_id', function(e) {
var value = $('#bbp_forum_id').val();
select_value(value);
});
$('#bbp_topic_tags').on('keyup', function() {
console.log($(this).val() + $('#bbp_forum_id').val());
});
var select_value = function(value) {
console.log($('#bbp_topic_tags').val() + value);
}
});
因为在每次更改时添加一个新的keyup事件处理程序,所以这个问题是因为每次更改select时都附加一个新的keyup事件处理程序。要解决这个问题,您只需要删除更改事件处理程序并在加载时附加keyup处理程序。Rory McCorsan,您能给我举个例子吗?我为您添加了一个答案。很好!谢谢。谢谢你的回答,这段代码很有用。但我需要简单的解决方案