通过控制台触发使用淘汰赛js创建的元素的更改事件

Posted

技术标签:

【中文标题】通过控制台触发使用淘汰赛js创建的元素的更改事件【英文标题】:Trigger change event of element created using knockout js through console 【发布时间】:2021-09-27 02:08:50 【问题描述】:

下面是检查组合框的元素部分。

<select id="ddl-fund" aria-label="Funds" tabindex="0" data-bind="options: FundsAvailable, optionsText: 'Value', optionsValue: 'Key', value: SelectedFund, event: change: onSelectedFund"> 
   <option value="413">International Equity Portfolio</option>
   <option value="723">International Equity Fund</option>
   <option value="724">International Select Fund</option>
</select>

我想从控制台触发更改事件。 我已经使用下面的脚本更改了组合框的值。

$('#ddl-fund').find('option')[1].selected=true;

如果我使用以下脚本调用更改事件,它不起作用:

$('#ddl-fund').trigger('change');

【问题讨论】:

$('#ddl-fund').trigger('change'); 将起作用(假设事件处理程序是使用 jQuery 绑定的)。如果没有使用 jQuery 绑定,则需要直接触发事件:developer.mozilla.org/en-US/docs/Web/Events/… 它可以与其他元素一起使用,但是对于没有事件处理程序的这个元素,它使用了敲除的更改事件绑定。 【参考方案1】:

您应该能够使用ko.dataFor('#ddl-fund') 来获取选择元素绑定到的视图模型。那么它应该只是执行onSelectFund 假设它是找到的视图模型的一部分。

Knockoutjs - Using unobtrusive event handlers

【讨论】:

以上是关于通过控制台触发使用淘汰赛js创建的元素的更改事件的主要内容,如果未能解决你的问题,请参考以下文章

onClick事件更改类名反应js

在元素边界出触发不断触发hover事件如何解决?

使用 Ember.js 复选框输入助手触发更改事件的操作?

淘汰 'textInput' 和 'Value' 绑定没有捕捉到从 JS 所做的更改

文件输入元素的更改事件

js 实现拖拽元素