Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
102
rated 0 times [  106] [ 4]  / answers: 1 / hits: 28858  / 10 Years ago, thu, july 3, 2014, 12:00:00

I've come across various solutions to this issue on the net.



Basically, I find having to hold down ctrl a bit cheesy, and I want the select list to just select whatever I click on and add it to the currently selected items.



I've already got this code:



    $(select[multiple] option).mousedown(function () {
var $self = $(this);

if ($self.attr(selected)) {
$self.removeAttr(selected, );
}
else {
$self.attr(selected, selected);
}

return false;
});


Element:



    <select multiple id=WOStatusKey name=WOStatusKey>                
<option value=1>Created</option>
<option value=2>In Process</option>
<!-- etc. (about 20 of these) -->
</select>


It works fine with one exception: any time something is selected/deselected that is not at the top of the list (where you have to scroll to see it) then it pops back up to the top after you select it. I've played around with it a little bit but can't figure out anything to prevent this behavior. Also, I've seen a couple other solutions to this problem, although nothing that either works or works well.



I only need this to work in Chrome. Also, I am not interested in any alternative solutions to using a select list.



Thank you for any help, it is much appreciated.


More From » jquery

 Answers
18

You can save the Element.scrollTop and set it at the end.



$(select).mousedown(function(e){
e.preventDefault();

var select = this;
var scroll = select .scrollTop;

e.target.selected = !e.target.selected;

setTimeout(function(){select.scrollTop = scroll;}, 0);

$(select ).focus();
}).mousemove(function(e){e.preventDefault()});


http://jsfiddle.net/UziTech/cjjg68dr/114/


[#70340] Monday, June 30, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
tylerdamiena

Total Points: 139
Total Questions: 90
Total Answers: 118

Location: Liechtenstein
Member since Wed, Dec 8, 2021
3 Years ago
tylerdamiena questions
;