shell8 (:|) [:|]

"médiaipari faszkivan"

IE select width bug

2007 nov 21 12:07

Elönt a hideg veríték, amikor az űrlapjaidba olyan select mezőket kell tenni melyek tartalma bazi széles, de a design keskeny?
Újabb és újabb okok miatt utálod az Internet Explorert?

Kis jQuery csuklógyakorlat és a problémád tovaszáll - még ha többé kevésbé félmegoldás is.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
(function($) {	
	if(jQuery.browser.msie)
	{
		$('select.fixedWidth').each(function(i,s)
		{
			s.origWidth = s.offsetWidth;			
			s.setWidth = new Number( s.className.match(/.* w(\d{1,3}).*/)[1]);				
		}).wrap('<div class="fixedWidth"></div>');
 
		$('div.fixedWidth').each(function(i,s)
		{				
			$(s).css('width', $(s).find('select.fixedWidth')[0].setWidth )
				.append('<div class="fake"><select></select></div>');
 
			$(s).find('div.fake select')
				.css({marginLeft: eval(($(s).find('select.fixedWidth')[0].origWidth-22) * -1)})
				.change(function(){
					$(s).find('select.fixedWidth')[0].selectedIndex = this.selectedIndex;
				});
 
			$(s).find('select.fixedWidth')
				.change(function(){
					$(s).find('div.fake select')[0].selectedIndex = this.selectedIndex;
				})
				.find('option')
					.clone(true)
					.appendTo( $(s).find('div.fake select') );
		});
	}	
})(jQuery);

Félmegoldás, mert

  • a nyilacska is működik, jobb mintha képpel cserélnénk le, de rosszul pozícionál
  • js nélkül, ha kell a design, marad a crop, vagy más kerülőút
  • mert még mindíg az IE szarjait kerülgetjük…

7 hozzászólás

havi bajunk