如何在multiple select2 jQuery插件中获取单击的值?

如何在multiple select2 jQuery插件中获取单击的值?,jquery,select2,Jquery,Select2,上面的代码返回数组中所有选定的值。我只想在multiple select 2上获取最新的点击值。不幸的是,据我所知,没有一个完美的解决方案 基本上只需跟踪所有值并查看哪些值是新值(注意lastClicked可以是一个列表,因为可以一次选择多个值): var lastClicked=null; var=[]; $('.product下拉列表').change(函数(){ var curClicked=this.val(); lastClicked=curClicked.filter(函数(x){r

上面的代码返回数组中所有选定的值。我只想在multiple select 2上获取最新的点击值。

不幸的是,据我所知,没有一个完美的解决方案

基本上只需跟踪所有值并查看哪些值是新值(注意lastClicked可以是一个列表,因为可以一次选择多个值):

var lastClicked=null;
var=[];
$('.product下拉列表').change(函数(){
var curClicked=this.val();
lastClicked=curClicked.filter(函数(x){return prevClicked.indexOf(x)<0});
});
var=[];
var=[];
var差=[];
$('.product下拉列表').change(函数(){
curClicked=$(this.val();
if(curClicked==null){
curClicked=[];
}
clickType=getClickType();
var clickedValue=diffArray(curClicked,prevClicked);
console.log(点击类型+“”+点击值);
prevClicked=curClicked;
});
函数getClickType(){
var prevLen=prevClicked.length;
var CurLen=curClicked.length;
如果(前向
查看
选择2:选择
事件并使用
事件参数数据

还有一个
select2:unselect

$('select')。select2()
$('select')。打开('select2:select',函数(e){
var数据=e.params.data;
console.log(data.id);
console.log(data.text);
});
$('select')。打开('select2:unselect',函数(e){
var数据=e.params.data;
console.log(data.id);
console.log(data.text);
});

福
酒吧
富吧

感谢您的快速回复。明白你的意思了。但是上面的代码仍然返回所有选定值的数组。谢谢你。这应该被选为答案。
$(document.body).on('change','.product-dropdown',function(){
   var selectVaule = $(this).val();
   if(selectVaule){
      alert(selectVaule+ 'select');
   }
});
var lastClicked= null;
var prevClicked = [];

$('.product-dropdown').change(function(){
    var curClicked = this.val();
    lastClicked = curClicked.filter(function(x) { return prevClicked.indexOf(x) < 0 });
});
        var prevClicked = [];
        var curClicked = [];
        var difference = [];

        $('.product-dropdown').change(function(){
            curClicked = $(this).val();
            if(curClicked == null){
                curClicked=[];
            }
            clickType = getClickType();
            var clickedValue = diffArray(curClicked, prevClicked);
            console.log(clickType + ' ' + clickedValue);

            prevClicked = curClicked;

        });

        function getClickType(){
            var prevLen = prevClicked.length;
            var CurLen = curClicked.length;
            if(prevLen < CurLen){
                return 'select';
            }
            else{
                return 'unselect';
            }
        }

        function diffArray(a1, a2) {
            var a = [], diff = [];
            for (var i = 0; i < a1.length; i++) {
                a[a1[i]] = true;
            }
            for (var i = 0; i < a2.length; i++) {
                if (a[a2[i]]) {
                    delete a[a2[i]];
                } else {
                    a[a2[i]] = true;
                }
            }
            for (var k in a) {
                diff.push(k);
            }
            return diff;
        }