通过控制台触发使用淘汰赛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创建的元素的更改事件的主要内容,如果未能解决你的问题,请参考以下文章