javascript - 双击添加的选择选项不起作用

标签 javascript jquery dom-events html-select

我有两个选择,它们都使用一个函数将元素添加到另一个选择。 这是我拥有的:

$("#lecturers option").dblclick(function () 
{
    var element = $("#lecturers option:selected");
    var value = element.val();
    element.remove();
    var values = value.split(";")

    $("#selected_lecturers").append('<option value="' + value + '">' + values[2] + ', ' + values[1] + '</option>');

});

反之亦然:

http://jsfiddle.net/VJAJB/

它不知何故只工作一次,新添加的元素不会触发该功能。

知道如何解决这个问题吗?

最佳答案

问题在于如何将 dblclick 函数绑定(bind)到元素。当前选择器仅返回绑定(bind)时 select 元素中的选项元素。要改变这一点,您可以使用委托(delegate)事件。

$('#lecturers').on('dblclick', 'option', function() {
    //Do stuff here
});

这确保您添加到选择元素的任何选项元素在双击时都会触发此事件。

这是一个更新的 fiddle :http://jsfiddle.net/VJAJB/4/

请注意,其他用户已经为您提供了可行的解决方案。但是,最佳做法是限制绑定(bind)到文档本身的事件数。只要有可能,您应该将委托(delegate)的事件监听器绑定(bind)到最近的不变元素。

关于javascript - 双击添加的选择选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20477321/

相关文章:

javascript - 如何根据 URL 条件滚动到 anchor ?

JavaScript 评估

javascript - 不理解 JavaScript 代码中的回调函数

javascript - 使用 Ajax 和 PHP 上传音频文件

jquery - 使用 jquery post for mvc 3 在部署时不起作用

javascript - 从字符串中去除特定字符位置的更简洁方法?

javascript - `onclick` 不适用于新附加的项目

javascript - 我可以使用 Edge 中的 JavaScript 在 Chrome 中打开 URL 吗?

javascript - 使 HTML 输入区域只读但可选择

javascript - 具有特定innerHTML的Jquery选择器