jquery - jQuery 事件委托不适用于下拉菜单
问题描述
HTML 如下所示:
<div id = 'forecastItems'>
<select class="ui dropdown categoryScopeItem" id = 'categoryScopeItem1' name = updated[forecastID]>
<option value=""></option>
<% items.forEach(function(item) { %>
<option value = '<%= item.key %>' revenue = '<%= item.totalRevenue %>' releasedValue = '<%= item.releasedvalue %>' percentRemaining = '<%= item.percentRemaining %>' remainingToBill = '<%= item.totalRemaining %>' label = '<%= item.jobNumber %>' style = 'display: none'><%= item.item %></option>
<% }) %>
</select>
<br>
<div class = 'ui left icon input itemValue' style = 'width: 125px'>
<input type="text" placeholder="Value" name = updated[value] class = 'ui mini input'>
<i class = 'dollar sign icon'></i>
</div>
<button type = 'button' class = 'newForecastToggle' id = 'firstAdd' style = 'font-size: .8em'>Add More</button>
<div style = 'display: inline'>
<span class = 'forecastInfo'></span>
</div>
</div>
<div id = 'holder'>
<br>
</div>
我的第一个事件委托工作正常:
$('#scopeItems').on('click', '.newForecastToggle', function(event) {
event.preventDefault();
$('#forecastItems').clone().insertBefore($('#holder'))
});
但是,我的第二个事件委派无法正常工作,因此仅在第一个下拉列表中工作:
$('#forecastItems').on('change', 'select', function(e) {
var itemRevenue = $('.categoryScopeItem :selected').attr('revenue')
var remainingToBill = $('.categoryScopeItem :selected').attr('remainingToBill')
var percentRemaining = $('.categoryScopeItem :selected').attr('percentRemaining')
var releasedValue = $('.categoryScopeItem :selected').attr('releasedValue')
var selectedItem = $(this).next().next().find('input')
var valueInfo = $(this).next().next().next().next()
valueInfo.find('.forecastInfo').text('$' + remainingToBill + ' / $' + itemRevenue + ' (' + percentRemaining + '%) Remaining')
selectedItem.attr('placeholder', remainingToBill)
})
我想也许我需要将#forecastItems 更改为父元素的id,但结果是一样的。任何帮助,将不胜感激。
解决方案
解决方案是改变:
$('.categoryScopeItem :selected').attr('revenue')
至
$(this).find('option:selected').attr('revenue')
感谢大家的投入,因为您帮助我找到了解决方案。
推荐阅读
- javascript - 如何在 Nightwatch 诱惑报告中的 Test body 下添加测试步骤?
- css - 需要在css中圆边框
- javascript - Git只添加我的一个文件夹而不是所有文件夹
- c++ - 程序在调试执行过程中以状态码 0 退出
- node.js - Neo4j - Neo4jError:连接被服务器关闭
- java - 如何将 Spring Boot 应用程序连接到 Android 客户端
- java - 使 javagent 在 Java < 9 中使用系统类加载器
- r - R fpp3包:错误:调用accuracy()方法时`vars`必须是字符向量
- node.js - express 应用程序:在哪里放置闭环温度控制
- matplotlib - matplotlib 子图不显示作为列表传递给它的确切 x 刻度标签