2011-11-16 7 views
7

jQueryを使用して、マルチセレクション形式で最後に選択したオプションを取得する方法を探しています。複数選択から最後に選択したオプションを取得するにはどうすればよいですか?

私はリストの最後のアイテムを探していませんが、ユーザーが最後にクリックしたアイテムを探しています。それは、リストの最初の選択の値を返します、でもその場合 - ユーザーはCtrlキー+は、複数の項目をクリックすると、選択した時には、上記の回答のようにthis.valueを使用して、この

var lastSelected = null; 
$('.multiSelectOptions').click(function(){ 
    lastSelected = this.value; 
}); 
+4

最後に選択したアイテムを自分で追跡する必要があります。 –

答えて

5

最後にクリックされたものではありませんでした。これを試してください:

var previouslySelected = []; 
$("#myMultiselect").change (function() { 
    // Get newly selected elements 
    var currentlySelected = $(this).val(); 
    var newSelections = currentlySelected.filter(function (element) { 
     return previouslySelected.indexOf(element) == -1; 
    }); 
    previouslySelected = currentlySelected; 

    if (newSelections.length) { 
     // If there are multiple new selections, we'll take the last in the list 
     var lastSelected = newSelections.reverse()[0]; 
    } 
}); 
+1

1. 'each'は必要ありません。2. this.valueが簡単なときは' $(this).val() 'を使わないでください。 –

+0

@AndyE入力していただきありがとうございます。 :] –

+1

はい、+1あなたのため:-) –

0

ような何かが失敗した

関連する問題