Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jquery检测多列表框中的更改_Jquery - Fatal编程技术网

如何使用jquery检测多列表框中的更改

如何使用jquery检测多列表框中的更改,jquery,Jquery,使用下面的代码,我可以使用add'remove按钮来添加和删除元素。现在,当这些列表框中的任何一个发生更改时,我都在尝试检测更改。我如何使用jQuery来执行此操作 $(document).ready(function() { $('#btn-add').click(function(){ $('#select-from option:selected').each( function() { $('#select-to').append

使用下面的代码,我可以使用add'remove按钮来添加和删除元素。现在,当这些列表框中的任何一个发生更改时,我都在尝试检测更改。我如何使用jQuery来执行此操作

$(document).ready(function() {

    $('#btn-add').click(function(){
        $('#select-from option:selected').each( function() {
                $('#select-to').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
            $(this).remove();
        });
    });
    $('#btn-remove').click(function(){
        $('#select-to option:selected').each( function() {
            $('#select-from').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
            $(this).remove();
        });
    });

});

看起来您正在动态地添加选项,但您只需要在select中观察更改事件

所以你可以加上

//jquery 1.7.1
$('#select-to').on('change', function(){});
$('#select-from').on('change', function(){});
要监视选择更改…如果要跟踪添加选项的事件,可以在按钮的单击事件中执行此操作,该按钮也会添加/删除选项。

您只需执行此操作即可

$('#select-to').change(function() {
    //your onChange code here
});
$('#select-from').change(function() {
    //your onChange code here
});

您可以创建自定义事件

$(document).ready(function() {    
    $('#btn-add').click(function(){
        $('#select-from option:selected').each( function() {
                $('#select-to').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
                $('#select-to,#select-from').trigger('customchange');
            $(this).remove();
        });
    });
    $('#btn-remove').click(function(){
        $('#select-to option:selected').each( function() {
            $('#select-from').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
            $('#select-to,#select-from').trigger('customchange');
            $(this).remove();
       });
    });
});

@虽然你的评论可能是准确的,但是有很多更好的表达方式。lol@iambriansreed。为什么RTFM时,你可以继续stackoverflow…免费积分;谢谢你的回答。上面只有在select元素获得焦点时才会触发。我试图实现的是在列表框上出现任何更新[add/delete]时触发函数。就像我说的,你只需在$'btn-add'中添加更多。单击函数{};调用在添加/删除时发生的更改,即更改的触发器;
$('#select-to').bind('customchange', function(){
  //do whatever
});