Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以编程方式更新输入值时引发更改事件_Javascript_Jquery - Fatal编程技术网

Javascript 以编程方式更新输入值时引发更改事件

Javascript 以编程方式更新输入值时引发更改事件,javascript,jquery,Javascript,Jquery,我有一个自定义的选择菜单,当你点击一个选项时,它会更新相应的实际选择菜单的值 $listItems.click(function(e) { e.stopPropagation(); $styledSelect.text($(this).text()).removeClass('active'); $this.val($(this).attr('rel')); $list.hide(); }); 问题是,我将更改事件挂接到选择菜单上,这些事件不会触发,因为该值是以编程方式更新的,

我有一个自定义的选择菜单,当你点击一个选项时,它会更新相应的实际选择菜单的值

$listItems.click(function(e) {
  e.stopPropagation();
  $styledSelect.text($(this).text()).removeClass('active');
  $this.val($(this).attr('rel'));
  $list.hide();
});
问题是,我将更改事件挂接到选择菜单上,这些事件不会触发,因为该值是以编程方式更新的,而不是
onblur
onkeydown

$(document).on('change', '.js-PropertyPaddingTop', function() {
  const value = $(this).val();
  $('.UIObject.is-selected').css('paddingTop', value + 'px');
});
我也尝试过使用
input
事件,但也不起作用

$(document).on('input', '.js-PropertyPaddingTop', function() {
  const value = $(this).val();
  $('.UIObject.is-selected').css('paddingTop', value + 'px');
});

有什么建议吗?

这取决于你的情况,但很简单
。触发(“更改”)有时可以做这项工作。在所选元素上触发激发DOM事件,这样您就可以自动调用所触发元素的所有回调

小警告-使用跳跳虎函数可能会导致循环事件循环,例如,如果您的输入触发事件
更改
和回调也直接或通过以下其他方法调用它

我想你的代码应该是

$listItems.click(function(e) {
  e.stopPropagation();
  $styledSelect.text($(this).text()).removeClass('active');
  $this.val($(this).attr('rel'));
  $this.trigger("change");  // call "change" event
  $list.hide();
});

您的
是对
文档的引用
?这是您自己的选择菜单或插件?就我个人而言,我不懂代码,你能补充一点细节吗?您是否尝试了
.trigger()
引用了实际的
选择
标记。因此,该行正在设置实际
select
的值。想象一下,我单击了一个按钮,更新了
select
标记的值。我怎样才能抓住新的价值?<代码>选择< /代码>不知道它已经被更新了。这取决于这是什么,大多数jQuery UI插件使用附加的标签包装,如果这是你自己的下拉,也许你应该考虑添加函数来通过输入本身来设置这个值,而不是仅仅引导值。这是你自己的下拉列表?