自定义选择下拉,无法选择用户添加的项目
Custom select dropdown, unable to select user added item
所以我有这个自定义下拉选择,我正在构建。它有一些嵌套的项目在那里,作为第一个选项,用户可以创建自己的项目。我已经让它工作了,所以他们可以点击它,在那里输入,一旦他们按下回车键,它就会被选中。我不明白的是,在他们创建了一个项目之后,他们选择了其他项目,他们无法返回选择新创建的项目。希望这讲得通。这里是jsfiddle https://jsfiddle.net/johnsonjpj/18zm9kwz/2/
这是脚本的一部分,我使用它将添加按钮更改为输入,然后将该数据替换回列表。
$(document).ready(function() {
$('body').on('click', '.addBtn', function(){
var $el = $(this).parent('.newInner');
var $input = $('<input type="text" class="form-control">');
$input.attr('placeholder', 'Enter your category name and press "Enter"');
// <span class="btn btn-default btn-xs"><i class="fa fa-check" aria-hidden="true"></i></span>
$el.replaceWith( $input );
var save = function(){
var $p = $('<span class="catName" />').text( $input.val() );
$input.replaceWith( $p );
$('.category-active').removeClass('category-active');
$('.addNew').removeClass('addNew').addClass('list-group-item category-active');
$('#categoryPlaceholder').attr('value', $input.val());
var container = $(".list-group.list-group-root");
container.hide();
$('.category-select').removeClass('category-open');
};
$input.one('blur', save).focus();
$input.keypress(function (e) {
var key = e.which;
if(key == 13) // the enter key code
{
save();
}
});
});
});
非常感谢所有的帮助。谢谢! 您需要使用事件委托,以便将事件绑定到动态添加的元素
你需要修改
$('.catName').on('click', function() {
$('body').on('click','.catName', function() {
工作小提琴:https://jsfiddle.net/x2m54gjj/
当文档第一次加载时,将函数$('.catName').on('click', function() {...}
添加到所有类别。这是处理选择的函数没有它你就不能点击任何项,对吧?
您使用on('click'...)
的方式是所谓的直接绑定,并且仅适用于当前对象。
所以这个函数应用于当时所有存在的项目。因此,当用户向列表中添加新项目时,该新项目将缺少此功能,因此无法被选中。
要解决这个问题,你需要添加一个委托绑定,你可以通过修改
$('.catName').on('click', function() {
$('body').on('click','.catName', function() {
相关文章:
- d3基于用户选择动态更新节点
- 是否可以仅通过jQuery将图像替换为用户动态选择的另一个图像
- 获取用户选择的不带时区的日期
- 如何使用javascript localStorage保存用户选择并在不同的html页面中显示
- 根据用户从下拉列表中的选择显示多个文本框
- 根据部门用户的选择,接收来自多个电子邮件地址的Wordpress Contactform7查询
- 计算用户从多个文件中选择的选项数量
- jQuery根据用户选择启用/禁用asp.net控件
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- 将用户对样式表的选择保存在cookie中
- 浏览并选择用户硬盘驱动器中的文件在IE中未定义
- 从下拉框中选择用户信息,并使用进度计数器显示数据库中的选定项目
- 如何使用可点击按钮在Datepicker日历中选择用户在其他月份的当前日期
- 如何在HTML5中选择用户媒体输入
- 自定义选择下拉,无法选择用户添加的项目
- 如何增加/减少'选择'用户想要选择一个选项后的选项宽度
- 从列表中选择用户
- 想要从更改cakephp部门的下拉列表中选择用户
- 如何选择用户从跨度列表在javascript
- 如何在Knockout中的数据绑定选项中自动选择用户状态