Chosen: select๊ฐ€ ์ฒ˜์Œ์— ์ˆจ๊ฒจ์ ธ ์žˆ์œผ๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2011๋…„ 07์›” 28์ผ  ยท  125์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: harvesthq/chosen

๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•  ๋•Œ 0์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋ฉด ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width /

์ฝ”๋“œ๋Š” elmt.is(:visible) ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ทธ๋ ‡๋‹ค๋ฉด ์œ„์˜ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํฌํฌ๋กœ ๊ณ ์ณ์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค. @ ์ ˆ์ฐจ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? ๊ทธ๋ƒฅ ์ปคํ”ผ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŒจ์น˜ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? js ๋ฐ js min์€ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๊นŒ?

Bug Sizing

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

7๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ๋„ ์ด๊ฒŒ ์–ด๋–ป๊ฒŒ ๊นจ์ง€์ง€?

๋ชจ๋“  125 ๋Œ“๊ธ€

์˜ˆ, ์ปคํ”ผ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŒจ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚˜๋Š” ์ˆจ๊ฒจ์ง„ ์š”์†Œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์ด ๋ฌธ์ œ์— +1์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

+1 ๋‚˜์ฒ˜๋Ÿผ

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด !important ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ div ์˜ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#my_select_chzn {
  width: 100% !important;
}

์‹ค์ œ๋กœ, ์ด๊ฒƒ์€ ๋‹น์‹ ์ด ์žˆ์–ด์•ผ ํ•  ๊ณณ์— ๋” ๊ฐ€๊นŒ์›Œ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„ˆ๋น„๋Š” ์™„๋ฒฝํ•˜์ง€ ์•Š์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

#my_select_chzn {
  /* This is the only width setting you'll need to change. */
  width: 100% !important;
}
#my_select_chzn .chzn-drop {
  width: 100% !important;
}
#my_select_chzn .chzn-drop .chzn-search {
  width: 99% !important;
}
#web_template_exploit_name_chzn .chzn-drop .chzn-search input {
  width: 98% !important;
}

Chosen์˜ ์ด์ „ ๋ฒ„์ „์€ ์‹ค์ œ๋กœ ์–‘์‹ ํ•„๋“œ ๋„ˆ๋น„๊ฐ€ CSS๋ฅผ ํ†ตํ•ด ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋„ˆ๋น„ ๊ณ„์‚ฐ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ˆจ๊ฒจ์ง„ ์š”์†Œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด 30์ค„์˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ด ์ˆ˜์ • ๋ฐฉ๋ฒ•์„ ์„ ํ˜ธํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ™์€ ๊ฒƒ์ด ๋‹น์‹ ์„ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

๋„ˆ๋น„ ์„ค์ •:

  <select style="width:350px;" class="chzn-select">

JS๋Š” ๋จผ์ € ๋„ˆ๋น„ ์„ค์ •์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

  <strong i="10">@f_width</strong> = if @form_field_jq.css('width')? then parseInt(@form_field_jq.css('width'),10) else @form_field_jq.width()

@pfiller ์ฝ”๋“œ์— ์ž‘์€ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๋ผ์ธ ์Šคํƒ€์ผ์˜ ๋„ˆ๋น„๊ฐ€ ํ”ฝ์…€์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋‹จ์œ„(์˜ˆ: em)์ธ ๊ฒฝ์šฐ ์ฝ”๋“œ๋Š” ์ด๋ฅผ ํ”ฝ์…€๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. selected.jquery.coffee์˜ 56ํ–‰์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์‚ฌ๋žŒ๋“ค์ด ๊ณ„์†ํ•ด์„œ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•  ๊ฒƒ์ด๊ณ  ๊ฒฐ๊ตญ์—๋Š” 30์ค„์˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @pfiller , ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. width() ๋ฐ css("width") ๋ชจ๋‘ ์ˆจ๊ฒจ์ง„ ์š”์†Œ์— ๋Œ€ํ•ด 0์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. getHiddenDimensions ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

btw, f_width์™€ get_side_border_padding ๋ชจ๋‘์— ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•ด +1.

๋‚ด๊ฐ€ Chosen์„ ํ†ตํ•ฉํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ์ดํŠธ์˜ ๋งŽ์€ ๋…ผ๋ฆฌ๋Š” ์ฒซ ๋ฒˆ์งธ ๋กœ๋“œ ์‹œ ์ˆจ๊ฒจ์ง€๋Š” ์ผ๋ถ€ ์„ ํƒ์— ์˜์กดํ•˜๋ฏ€๋กœ ์ด์— ๋Œ€ํ•ด ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

+1๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์‹œ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

:+1: :+1: :+1:

๋“œ๋กญ๋‹ค์šด ๋„ˆ๋น„๊ฐ€ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •๋˜์ง€ ์•Š๊ณ  ์—ด๋ฆด ๋•Œ ํ…์ŠคํŠธ ์ƒ์ž์˜ ๋„ˆ๋น„๋กœ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋˜๋Š” ์†”๋ฃจ์…˜์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๊ฒŒํ•˜๋ฉด ์ž…๋ ฅ ๋„ˆ๋น„๋ฅผ ๊ฑด๋“œ๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. CSS๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๋“œ๋กญ ๋‹ค์šด์„ ์—ด ๋•Œ๋งˆ๋‹ค ์ฝ์œผ์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์— ๋Œ€ํ•ด +1. ๋‚˜๋Š” Chosen์„ ExpressionEngine CMS์˜ ํ•„๋“œ ์œ ํ˜•์œผ๋กœ ๋ฐ”๊พธ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์ง€๋งŒ EE์˜ ๊ฒŒ์‹œ ๋ ˆ์ด์•„์›ƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ํ•„๋“œ๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ EE์˜ ๊ฒฝ์šฐ ๋„ˆ๋น„๊ฐ€ ์œ ๋™์ ์ด๊ฑฐ๋‚˜ ๋‹จ์ˆœํžˆ ํ•ญ์ƒ ํฌํ•จํ•˜๋Š” ์š”์†Œ์˜ 100%์ธ ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค...

์ด ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค์Šต๋‹ˆ๋‹ค ... ์ตœ์‹  ๋ฒ„์ „์—์„œ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

+1
์ด ๋ฒ„๊ทธ๋Š” Netflix์˜ ๋‚ด๋ถ€ ์•ฑ์šฉ Chosen ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

:+1: ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์˜ค๋Š˜ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. position: absolute; ์™ผ์ชฝ: -999em;
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์™€ Google๋„ ์ด๋ฅผ "์ฝ์„" ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค์‹œ ํ‘œ์‹œํ•  ๋•Œ ์„ ํƒ ํ•ญ๋ชฉ ๋“œ๋กญ๋‹ค์šด์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‚ด pull ์š”์ฒญ์€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋งŒ ๋‚ด ๋‹ค๋ฅธ ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ ํƒ๋œ ๋งŽ์€ ์š”์ฒญ์ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์—๋Š” ์ฝ”๋“œ ๊ธฐ๋ฐ˜์ด ๋„ˆ๋ฌด ์ž‘์€ ๊ธฐ์—ฌ์ž๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค.

DelvarWorld, ํŒจ์น˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ €๋ฅผ ๊ดด๋กญํžˆ๊ณ  ์žˆ์—ˆ๊ณ  ๋น„์Šทํ•œ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ ํ–ˆ๋Š”๋ฐ ์ด๋ฏธ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๋ ‡๊ฒŒํ–ˆ๋Š”์ง€ ๋‹ค์‹œ ํ™•์ธํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธํ•œ ํ›„ ๊ณง ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ์— ๋ฐฐํฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@DelvarWorld ์–ด๋–ค ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”? ๊ท€ํ•˜์˜ ๊ณต๊ฐœ ํ’€ ์š”์ฒญ์ด ํ•˜๋‚˜ ์žˆ์œผ๋ฉฐ ์ด ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@pfiller ์ด ์Šค๋ ˆ๋“œ์—์„œ ์œ„์— ๋‚˜์—ด๋œ ๊ฒƒ, https://github.com/DelvarWorld/chosen-hacks/commit/e9501568acae1988ba51b5a29269023d3400db42

CSS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ Chosen ๊ตฌ์„ฑ์—์„œ ์ž˜๋ชป ์บ์‹œ๋œ ๋„ˆ๋น„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ๊ฒฐ๊ณผ๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ ์š”์†Œ์˜ "ํ˜„์žฌ" ๋„ˆ๋น„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งŽ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์—ˆ๊ณ  ์ง์ ‘ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ด ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณง ๋ณ‘ํ•ฉ๋œ ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@bewest ๋‚ด ํ’€ ์š”์ฒญ์€ ๋“œ๋กญ๋‹ค์šด์ด ํ‘œ์‹œ๋  ๋•Œ๋งˆ๋‹ค ์š”์†Œ์˜ ๋„ˆ๋น„์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

@delvarworld ๋‚ด๊ฐ€ ์•„๋Š” ๋ฐ”๋กœ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ตฌ๋ณ„์ด ์ด๋ฃจ์–ด์กŒ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

HEAD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ ๋„ˆ๋น„ ๋ถ„๊ธฐ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? 8์›” ๋ง๊ฒฝ ๋น„์Šทํ•œ ์ฒดํฌ์•„์›ƒ์—์„œ ๋ณ‘ํ•ฉ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž…๋ ฅ ์ƒ์ž๊ฐ€ ์ด์ œ ์ž˜๋ชป๋œ ๋„ˆ๋น„์ž…๋‹ˆ๋‹ค(๋„ˆ๋ฌด ๋„“์–ด์„œ ์„ ํƒํ•œ ์ปจํ…Œ์ด๋„ˆ์˜ ๋„ˆ๋น„๊ฐ€ ๋„˜์นจ).

์‚ดํŽด๋ณด๊ณ  ์žˆ์ง€๋งŒ ์ผ๋ถ€ ์žฌ๊ตฌ์„ฑ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค... setup ๋ฐ finish_setup ๋ฉ”์†Œ๋“œ๋ฅผ ์œ„ํ•ด ์ƒ์„ฑ์ž๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ coffeescript์— ์ต์ˆ™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ์— ๋งŽ์€ ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ๋ณ‘ํ•ฉ ์ง„ํ–‰์ด ๋‚˜๋ณด๋‹ค ๋น ๋ฅผ ์ˆ˜ ์žˆ๊ณ  ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ œ์ถœํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ์‹ค, ์ œ ๋ธŒ๋žœ์น˜๋Š” ๊ทธ ๋ณ€ํ™”๋ฅผ ์ง€๋‚˜์„œ ๋ถ„๊ธฐ์ ์ด ๋˜์—ˆ๊ณ , ๊ฒฐ๊ตญ ์ €๋Š” ํ”„๋กœํ† ํƒ€์ž… ๋ฒ„์ „ ์ž‘์—…์„ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ž˜๋ชป์ด๋ฉฐ ํ˜„์žฌ๋กœ์„œ๋Š” ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@DevarWorld ์˜ˆ, ์ถ”์ƒ ๊ตฌํ˜„์— ์ผ๋ถ€ ๋น„ํŠธ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ์•ฝ๊ฐ„ ์žฌ์ž‘์—…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ”„๋กœํ† ํƒ€์ž…๊ณผ jquery ๊ฐ„์˜ ์ฐจ์ด์ ์„ ๋” ์‰ฝ๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ ๋ฒˆ ๋” ์‹œ๋„ํ•ด ๋ณด์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ณต์†ํ•œ ๋ฒ”ํ”„ ...์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์„ ํƒ์€ ๋‚ด ์„ ํƒ์„ ์ˆจ๊ธฐ๊ณ  ๋„ˆ๋น„๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CSS์—์„œ ๊ฐ chzn ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋„ˆ๋น„๋ฅผ ์ž„์˜๋กœ ์„ค์ •ํ•˜์—ฌ ํ•ดํ‚นํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์œผ๋ฉฐ ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ๋ณธ ์›น ์‚ฌ์ดํŠธ์—์„œ์™€ ๊ฐ™์ด ์ •์ƒ์ ์œผ๋กœ ๋ณด์ด์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ์š”์†Œ์˜ ๋„ˆ๋น„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์„ ํƒํ•œ ๋ฐฉ๋ฒ•์€ ์ด์ „ ๋ฒ„์ „์˜ jquery์—์„œ ๊นจ์กŒ์Šต๋‹ˆ๋‹ค(์ฃ„์†กํ•˜์ง€๋งŒ ์ •ํ™•ํ•œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค). ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋ฒ„๊ทธ๋Š” ์š”์†Œ๊ฐ€ ๋ณด์ด์ง€ ์•Š์„ ๋•Œ ๋„ˆ๋น„๊ฐ€ 0์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„๊ทธ๋Š” ๋งค์šฐ ์ž˜ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ์ฃผ๋ณ€์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋ฅผ ์œ„ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋‹จ์ˆœํžˆ ์ตœ์‹  ๋ฒ„์ „์˜ Jquery๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, ์šฐ๋ฆฌ๋Š” jquery๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์ „ ์ฝ”๋“œ์˜ ์ผ๋ถ€ ํŒจ์น˜ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ–ˆ์ง€๋งŒ ์žฅ๊ธฐ์ ์œผ๋กœ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  js/css ์ „์ฒด์—์„œ ์•ฝ๊ฐ„์˜ ํ•ดํ‚น ํ•„์š”์„ฑ์„ ์ค„์ž…๋‹ˆ๋‹ค.

rails jquery gem ๋ฐ jquery-ujs์— ํŒจํ‚ค์ง€๋œ ์ตœ์‹  jquery๋ฅผ ์„ค์น˜ ์ค‘์ž…๋‹ˆ๋‹ค. ์•„์ง ๋„ˆ๋ฌด ์˜ค๋ž˜๋œ ๊ฒƒ ๊ฐ™์€๋ฐ์š”?

์˜ˆ, ์‹ค์ œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” 1.6.2๊ฐ€
๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2011๋…„ 11์›” 16์ผ ์ˆ˜์š”์ผ 11:23, Kevin Elliott <
๋‹ต์žฅ@reply.github.com

์ผ๋‹ค:

rails jquery gem์— ํŒจํ‚ค์ง€๋œ ์ตœ์‹  jquery๋ฅผ ์„ค์น˜ ์ค‘์ž…๋‹ˆ๋‹ค.
๋ฐ jquery-ujs. ์•„์ง ๋„ˆ๋ฌด ์˜ค๋ž˜๋œ ๊ฒƒ ๊ฐ™์€๋ฐ์š”?

@RoyJacobs newest ํ˜„์žฌ ์ถœ์‹œ๋œ 1.7์ž…๋‹ˆ๋‹ค.

@RoyJacobs ๋ฌธ์ œ ์—†์ด 1.6.4๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฑด ์ด์ƒํ•ด. ์˜ˆ, jquery-rails gem์€ jQuery 1.7์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋„ˆ๋น„๋กœ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ ๊ณ„์‚ฐ๋œ ๋ชจ๋“  ๋„ˆ๋น„๊ฐ€ 0px๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ .chzn-select๋ฅผ CSS์˜ ๋„ˆ๋น„๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ select ํƒœ๊ทธ์˜ ์Šคํƒ€์ผ ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ ์ง์ ‘ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์—๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

https://skitch.com/kevinelliott/gjufg/winetribe
https://skitch.com/kevinelliott/gjufp/winetribe

ํ™•์‹คํžˆ ์งœ์ฆ๋‚œ๋‹ค. ์„ ํƒ์€ display:none (์„ ํƒํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ€์ •)์„ ์–ป๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ ๋„ˆ๋น„๋ฅผ ์ œ๋Œ€๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ๊ฐ?

๋‚˜๋Š” ์ด๊ฒƒ์ด ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋„ ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์ •๋ง๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค(๊ฐ•์ œ๋กœ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„). ์•„๋ฌด๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์™„์ „ํžˆ ํฌ๊ธฐํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„ ํƒ ํ•ญ๋ชฉ์— ์ผ๋ถ€ CSS, ์Šคํƒ€์ผ์‹œํŠธ ๋˜๋Š” ์ธ๋ผ์ธ์ด ์ ์šฉ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์Šคํƒ€์ผ์‹œํŠธ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” selected()๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— DOM์— ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ถŒ๋ฆฌ๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ๋งค์šฐ ์–ด๋ ต๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. CSS๋ฅผ ํ†ตํ•ด ์„ ํƒํ•œ ์„ ํƒ ์˜์—ญ์— ๋„ˆ๋น„๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์ •๋ง๋กœ ์›ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํด๋ž˜์Šค, ํ•˜๋‚˜์˜ ๋„ˆ๋น„, px ๋˜๋Š” %.
๋‚ด CSS๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

.example ์„ ํƒ, .example .chzn-smth {
๋„ˆ๋น„: 50%;
}

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์–ด๋–ป๊ฒŒ, ์–ธ์ œ, ์–ด๋””์—์„œ ์„ ํƒํ–ˆ๋Š”์ง€์— ๊ด€๊ณ„์—†์ด ๋„ˆ๋น„๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ธ๋ผ์ธ๊ณผ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ํ†ตํ•ด ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ผ์ดํŠธ๋ฐ•์Šค์™€ ์•„์ฝ”๋””์–ธ์— ๋Œ€ํ•œ ๊ฝค ์‹ค์งˆ์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ํŒจ์น˜ ์ž‘์—…ํ•˜์‹œ๋Š” ๋ถ„ ๊ณ„์‹ ๊ฐ€์š”?

์•„๋ฌด๋„ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์•„์š”! ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๊ฒฉ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด ์ฝ˜ํ…์ธ ๋ฅผ ์ธ์œ„์ ์œผ๋กœ ์ˆจ๊ธฐ์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค. selected() ํ˜ธ์ถœ์ด ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ์ด์ƒํ•ด.

@kevinelliott ์ด ๋ฌธ์ œ๊ฐ€

์ด๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ณ ๋งˆ์›Œ ๋ฆฌ์ฒ˜๋“œ. jQuery๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด์ƒํ•œ ์ ์€ ๋‚ด๊ฐ€ ์„ ํƒ ์š”์†Œ๋ฅผ ์ˆจ๊ธฐ์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„ ํƒ๋œ ์‚ฌ๋žŒ์ด ๊ทธ๊ฒƒ์„ ์ˆจ๊ธฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€์กฐ์ฐจ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

@kevinelliott Np. ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์š”. ํ”ฝ์…€๋กœ ์„ค์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šคํƒ€์ผ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ์— ์ง์ ‘ ์„ค์ •ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์œผ๋ฉฐ CSS์—์„œ๋„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

@kevinelliott ์†”์งํžˆ ๋งํ•ด์„œ ์กฐ๊ธˆ (์šฐ๋ฆฌ๋Š” ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ž˜ ์ž‘๋™ํ•จ) 2) ์„ ํƒํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์‹คํ–‰ํ•˜์—ฌ ์„ ํƒํ•œ ์ง€์ ์—์„œ ์„ ํƒ ์š”์†Œ๋ฅผ ์ˆจ๊ธฐ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค... ์šฐ๋ฆฌ๊ฐ€ ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค์„ ๋•Œ๋„ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ๋„์›€์„ ๋“œ๋ฆฌ์ง€ ๋ชปํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๊ณ ์ • ๋„ˆ๋น„๊ฐ€ ์„ ํƒ๋˜์–ด ์žˆ์–ด๋„ ๋„ˆ๋น„๊ฐ€ 0px์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์—†๊ณ , ์ด ์ƒํ™ฉ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ , ๋‹ค๋ฅธ ๊ณณ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

@tiagobrito : ๋‚˜๋Š” ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ๊ทธ๊ฒƒ์„

@RichardBlair ๋„์™€์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ƒ๊ฐ์ด ์žˆ์œผ์‹œ๋ฉด ์ €ํฌ์—๊ฒŒ ์•Œ๋ ค์ฃผ์„ธ์š” :)

+
๊ฐ™์€ ๋ฌธ์ œ์ธ๋ฐ ๊ณ ์ณ์ฃผ์„ธ์š”

@tiagobrito , @dhampik ๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ž‘์€ ์š”์ ์„

@bewest ๋‚˜๋Š” ์ด๋ฏธ ์•Œ์•„ ๋ƒˆ์–ด! ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ jquery 1.4.x๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ ์ฃผ ์›”์š”์ผ ๋„ˆ๋น„: 0px๋ฅผ ์œ ๋ฐœํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์˜ jquery๋ฅผ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

@bewest ์ €๋„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
jquery์˜ ์ด์ „ ๋ฒ„์ „(1.6.4 ์ด์ „)
์ฒ˜์Œ์— ์ˆจ๊ฒจ์ ธ ์žˆ๋Š” ์„ ํƒ ๋ ˆ์ด์•„์›ƒ์„ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๋‹ค์Œ์€ 2๊ฐœ์˜ ๋ฐ”์ด์˜ฌ๋ฆฐ์ž…๋‹ˆ๋‹ค.
์—‰๋ง ๋ ˆ์ด์•„์›ƒ(์ด์ „ jquery): http://jsfiddle.net/dhampik/2E9fG/
์˜ฌ๋ฐ”๋ฅธ ๋ ˆ์ด์•„์›ƒ(์ƒˆ jquery): http://jsfiddle.net/dhampik/Rs9Z3/

๋ง™์†Œ์‚ฌ, jquery์˜ ๋ฒ„์ „์ด Yii ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ƒˆ๋กœ์šด ๋‹ค๊ฐ€์˜ค๋Š” ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค)

Chosen์„ Trac์— ํ†ตํ•ฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‹ฐ์ผ“์˜ ์†์„ฑ ์–‘์‹์— ์žˆ๋Š” ์ดˆ๊ธฐ ์„ ํƒ ์ƒ์ž์˜ ๋„ˆ๋น„๋Š” 0์ž…๋‹ˆ๋‹ค. ์†์„ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆจ๊ฒจ์ ธ ์žˆ์œผ๋ฉฐ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์ด์ฟผ๋ฆฌ v1.7.1

์—…๋ฐ์ดํŠธ: ์ ์–ด๋„ Foliotek ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์— ์–ธ๊ธ‰๋œ CSS ํŠธ๋ฆญ์ด jQuery 1.7.1์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„์ง JS ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•(Trac์˜ ๊ฒฝ์šฐ):

$("#modify").parent().removeClass('collapsed');
$("#field-test").chosen();
$("#modify").parent().toggleClass('collapsed');

jQuery <= 1.7.1์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด

jQuery Actual์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์—์„œ selected.jquery.js#301 ๋ณ€๊ฒฝ
this.f_width = this.form_field_jq.outerWidth();
์—๊ฒŒ
this.f_width = this.form_field_jq.actual( 'outerWidth' );

//1.7.2 ์ฃผ์„์— ๋Œ€ํ•œ thx

@midday jquery.actual ์˜ README์— ๋”ฐ๋ฅด๋ฉด ์ด๊ฒƒ์€ 1.7.2 ์ด์ „์˜ jQuery ๋ฒ„์ „์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์˜ jQuery(>=1.7.1)๋Š” ๋ณด์ด์ง€ ์•Š๋Š” DOM ์š”์†Œ์˜ ๋„ˆ๋น„/๋†’์ด๋ฅผ ์ฐพ๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@midday ์‹ค์ œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•œ ํ›„ ์„ ํƒํ•œ ๋ฌธ์ œ๋ฅผ

์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์—์„œ๋„ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ช‡ ๋…„ ๋™์•ˆ ๊ณ„์†๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฏฟ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค๋‹ค. ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.

์ด CSS ํŠธ๋ฆญ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

/* Fix 100% width */
.chzn-container, .chzn-drop, .chzn-drop .chzn-search, .chzn-drop .chzn-search input {
  width: 100% !important;
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

/* Override width */
.chzn-container { width:250px !important; }

@gyopiazza. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

FWIW .chzn-container, .chzn-drop ๋ฐ .chzn-search ์ž…๋ ฅ์—์„œ ์ตœ์†Œ ๋„ˆ๋น„(!important ์—†์ด๋„)๋ฅผ ์„ค์ •ํ•˜๋ฉด ์ดˆ๊ธฐ์— ์ˆจ๊ฒจ์ง„ ์„ ํƒ์—์„œ๋„ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

CSS:


.chzn-container, .chzn-drop {
    width: 100% !important;
}

HTML:

์„ ํƒ ์š”์†Œ์—์„œ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋Œ€์‹  ์›๋ž˜ ์„ ํƒ ์š”์†Œ์— ๋ž˜ํผ div๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ž˜ํผ์˜ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•˜๋„๋ก ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

Chosen์€ ์ด์ œ ๊ณ„์‚ฐ ์‹œ๋„๋ฅผ ๋ฌด์‹œํ•˜๋Š” ์„ค์ •๋œ ๋„ˆ๋น„๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•„๋งˆ๋„ ์ดˆ๊ธฐํ™” ์ง€์ ์—์„œ ์„ ํƒ์ด ์ˆจ๊ฒจ์ ธ ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•œ ๋งŒ์กฑ์Šค๋Ÿฌ์šด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

$("select").chosen({ width: '50%' });
$("select").chosen({ width: '200px' });
$("select").chosen({ width: '15em' });

์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์•„๋งˆ๋„ ์ด ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•  ์ž‘์—…์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๋ณต์žก์„ฑ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒ์„ ํ™”๋ฉด ๋ฐ–์œผ๋กœ ์ด๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒƒ์„ ์ •๋ง ํ”ผํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด ์†”๋ฃจ์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด ๋ฒ„๊ทธ๋ฅผ ๋‹ซ๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๋ฒ„์ „ 0.9.8์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์ˆจ๊ฒจ์ง„ ์„ ํƒ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋‚˜๋Š” 0.9.14 ์—…๋ฐ์ดํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ๊ณ  ์ž‘๋™์„ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ถ•์†Œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์ผ๋ฐ˜ ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(chosen.jquery.js 0.9.14). ์ •์ƒ์ธ๊ฐ€์š”? ์ถ•์†Œ ๊ณผ์ •์˜ ์˜ค๋ฅ˜์ž…๋‹ˆ๊นŒ?

jQuery min ๋˜๋Š” ์ „์ฒด ํฌ๊ธฐ 0.9.14์—์„œ๋Š” ์ˆจ๊น€์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์˜ต์…˜ '๋„ˆ๋น„'๊ฐ€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ด์ „์— ์ˆจ๊ฒจ์ ธ ์žˆ๋˜ ์ƒˆ๋กœ ์„ ํƒํ•œ ์ž…๋ ฅ์— ๋Œ€ํ•ด์„œ๋Š” ์ž‘์—…ํ•˜์‹ญ์‹œ์˜ค.

@trisweb ์ด๊ฒƒ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ด๋ฉฐ ์—ฌ๊ธฐ์— ์ ๋Œ€๊ฐ์„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๋‚ ์˜ Chosen์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ์—๋„ˆ์ง€๋ฅผ ์Ÿ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ฐœ์„ ์— ๊ธฐ์—ฌํ•˜๊ฑฐ๋‚˜ ๋Œ“๊ธ€์„ ์‚ผ๊ฐ€ํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

@kenearley ์ €๋Š” ์˜คํ”ˆ ์†Œ์Šค ์—ํ‹ฐ์ผ“์„ ์ถฉ๋ถ„ํžˆ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ ์ œ ์˜๊ฒฌ์„ ๋” ํšจ๊ณผ์ ์œผ๋กœ ๋””์ž์ธํ–ˆ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธด ํ•˜์ง€๋งŒ, ๋‚˜๋Š” ๋•Œ๋•Œ๋กœ ๋‹น์‹ ์ด ๋ชจ๋“  ์†Œ์Œ์— ๋Œ€ํ•ด ์†Œ๋ฆฌ์น  ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒํ•œ ์š”์†Œ์˜ ๋„ˆ๋น„์— ๋Œ€ํ•œ ๊ฐ’์ด 0์ธ ๊ฒƒ์€ ๋…ผ๋ฆฌ์ ์ด์ง€ ์•Š์œผ๋ฉฐ ์˜ฌ๋ฐ”๋ฅธ ๋„ˆ๋น„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ์•ˆํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•ฉ๋ฆฌ์ ์ธ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ์ž๋ช…ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ 0์€ ํ•ฉ๋ฆฌ์ ์ธ ๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค.

์–ด๋ ค์šด ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋ฒ„๊ทธ๊ฐ€ ์˜ค๋žซ๋™์•ˆ ์กด์žฌํ•ด ์™”์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋Š” ์ƒˆ๋กœ์šด 'width' ์†์„ฑ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ด€๋ก€๋ณด๋‹ค ๊ตฌ์„ฑ์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ ๊ฒฝ์šฐ์— ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” 0 ๋„ˆ๋น„๊ฐ€ ์„ ํƒ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธด ํ•˜์ง€๋งŒ, ๋‚˜๋Š” ๋•Œ๋•Œ๋กœ ๋‹น์‹ ์ด ๋ชจ๋“  ์†Œ์Œ์— ๋Œ€ํ•ด ์†Œ๋ฆฌ์น  ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”. '์†Œ์Œ ๋•Œ๋ฌธ์— ์†Œ๋ฆฌ์น ' ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ๊ฐ•ํ•˜๊ฒŒ ๋Š๋ผ๋Š” ๊ฒฝ์šฐ ํ’€ ์š”์ฒญ์„ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ถ„๊ธฐํ•˜๊ณ  ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ๊ท€ํ•˜์˜ ํ›„์† ์กฐ์น˜์— ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ ํ˜„์žฌ ์†”๋ฃจ์…˜์ด ์ด์ƒ์ ์ด์ง€ ์•Š๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€๋ฉด์„œ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์„ ๋ชจ์ƒ‰ํ•  ๊ฒƒ์ด๋ฉฐ ์ด ๋ณ€๊ฒฝ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์˜ pull ์š”์ฒญ์— ํฌ๊ฒŒ ๊ฐ์‚ฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@kenearley ๋‚˜๋Š” ์ˆ˜์‚ฌํ•™์— ๋Œ€ํ•œ ๋‹น์‹ ์˜ ์˜๊ฒฌ์— ์ •์ค‘ํ•˜๊ฒŒ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌผ๋ก  ์ฝ”๋“œ๋Š” ํ•ญ์ƒ ๋ง๋ณด๋‹ค ๋” ํฌ๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜„์žฌ ์šฐ๋ฆฌ์—๊ฒŒ ์งœ์ฆ๋‚˜๋Š” ๋ฌธ์ œ์ด๋ฏ€๋กœ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์œผ๋ฉด pull ์š”์ฒญ์ด ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

:+1: ์ˆ˜์ •์„ ์œ„ํ•ด!

์ €๋Š” Chosen์„ ๊ฑฐ์˜ 2๋…„ ๋™์•ˆ ์ง€์ผœ๋ณด์•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ฐ€์žฅ ์šฐ์•„ํ•œ ์„ ํƒ UI ๊ฐœ์„  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ˆจ๊ฒจ์ง„ ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์ฃผ์š” ๊ฑฐ๋ž˜ ์ฐจ๋‹จ๊ธฐ์ด๋ฉฐ 100% ๋„ˆ๋น„๋Š” ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด +1ํ•˜์„ธ์š”. ๊ณ  ํŒ€ ์„ ํƒ!

์ˆ˜์ •์„ ์œ„ํ•ด +1

ํ˜ธ์ถœ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ณต์‹ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์™ธ์—๋„ ๋‹ค์Œ ์Šค๋ ˆ๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ ์ ˆํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

http://stackoverflow.com/questions/1841124/find-the-potential-width-of-a-hidden-element

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ ๊ธฐ๋Šฅ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

// to be placed anywhere before the jquery.chosen initialization
    var getHiddenOffsetWidth = function (el) {
    // save a reference to a cloned element that can be measured
    var $hiddenElement = $(el).clone().appendTo('body');
    // calculate the width of the clone
    var width = $hiddenElement.outerWidth();
   // remove the clone from the DOM
   $hiddenElement.remove();
   return width;
};

๊ทธ๋Ÿฐ ๋‹ค์Œ Wich๋Š” jquery.chosen ์ฝ”๋“œ์˜ ๋‹ค์Œ ๋ชจ๋“œ(1.0.0 ๊ธฐ์ค€)์— ์˜ํ•ด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

AbstractChosen.prototype.container_width = function() {
    if (this.options.width != null) {
        return this.options.width;
    } else {
        return "" + (($(this.form_field).is(":visible"))
            ? this.form_field.offsetWidth
            : getHiddenOffsetWidth(this.form_field)) + "px";
    }
};

์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ #795๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋น ๋ฅธ ์ˆ˜์ •. select ๋ฅผ ์ˆจ๊ธฐ๋Š” ๋Œ€์‹  $(elem).chosen(options) ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ $(elem).hide() ์ฆ‰, ๋จผ์ € ์„ ํƒํ•œ ์š”์†Œ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ์ˆจ๊น๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์›๋ž˜ width ๊ฐ€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์ด๊ฑฐ ์•„์ง ์•ˆ ๊ณ ์ณ์กŒ๋Š”๋ฐ ์˜คํ”ˆ 3๋…„์ฐจ?

์ด ์ˆ˜์ • ์‚ฌํ•ญ์— ๋Œ€ํ•ด +1

๋ฒ„์ „ 0.9.8์—๋Š” ์ด ๋ฒ„๊ทธ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค! ๋„ˆ๋น„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด jquery outerWidth๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ด์ œ๋Š” HTML offsetWidth๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 0์ด ๋ฉ๋‹ˆ๋‹ค...

๋‚˜๋Š” ๊ทธ๊ฐ€ ๊ทธ๊ฒƒ์ด ์œ ๋งํ•œ ํšŒ๊ท€๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ ์žˆ์—ˆ์–ด?
jQuery ๋ฉ”์„œ๋“œ์—์„œ ์ „ํ™˜ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@pfiller jQuery 1.10.2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ  ๊ท€ํ•˜์˜ $("select").chosen({ width: '50%' }); ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ „์ฒด ์ฝ”๋“œ ์•„๋ž˜์—์„œ ์˜คํ”„์…‹ ๋„ˆ๋น„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด $(this.form_field).outerWidth() ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

AbstractChosen.prototype.container_width = function() {
    if (this.options.width != null) {
        return this.options.width;
    } else {
        return "" + $(this.form_field).outerWidth() + "px";
    }
};

+1 ์ด ์ˆ˜์ •์ด ์ •๋ง ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์–‘์‹์„ ์ˆจ๊ธฐ๊ณ  ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆจ๊ฒจ์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด ์„ ํƒ์˜ ๋„ˆ๋น„๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@henesnarfel - @pfiller ๊ฐ€ ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/harvesthq/chosen/issues/92#issuecomment -18163306

๋ฒ”ํ”„, ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•œ ๋‚ด์žฅ ์†”๋ฃจ์…˜์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +1ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ container_width ํ•จ์ˆ˜์—์„œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” 455ํ–‰(์ ์–ด๋„ ๋‚ด ํŽธ์ง‘๊ธฐ์—์„œ๋Š”)์œผ๋กœ ๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

return "" + this.form_field.offsetWidth + "px";

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ๋Œ€์ฒด

return "" + $(this.form_field).outerWidth() + "px";

๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

@ayyash ๋Š” ๋ฌธ์ œ๋ฅผ ์™„์ „ํžˆ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋„ˆ๋น„ 0๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ด๊ฒƒ์€ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค (์ฆ๊ฑฐ์›€์„ ์œ„ํ•ด ์ž์‹ ์˜ ํฌ๊ธฐ๋ฅผ ์ฑ„์šฐ์‹ญ์‹œ์˜ค).

/* Fix  width bug */
.chosen-container, .chosen-drop, .chosen-drop .chosen-search, .chosen-drop {
  width: 220px !important;
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

/* Input Box has to be slightly smaller, don't know why and I don't care. */
.chosen-search input {
    width: 210px !important;
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

/* Override width of the whole thing */
.chosen-container { width:220px !important; }

๊ฐ์‚ฌ ํ•ด์š”

@Thinklabsnk ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ํ›Œ๋ฅญํ•˜๊ณ  ๋น ๋ฅธ ์ˆ˜์ •.

ํŽธ์ง‘: ์ด๊ฒƒ์€ ๋ชจ๋“  ์„ ํƒ ์š”์†Œ์˜ ๋„ˆ๋น„๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋‹ค๋ฅธ ์ œ์•ˆ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋„ˆ๋น„๋ฅผ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ˆจ๊ฒจ์ง„ ์ž…๋ ฅ์„ ๋ณต์ œํ•˜๊ณ  ๋ณธ๋ฌธ์— ์ถ”๊ฐ€ํ•˜์ง€๋งŒ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์— ํด๋ก ์˜ ๊ฐ€์‹œ์„ฑ์„ ์ˆจ๊น€์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

selected.jquery.js์—์„œ ๋‹ค์Œ ์ฝ”๋“œ ์ค„์„ ์ฐพ์Šต๋‹ˆ๋‹ค(๋‚ด ๋ฒ„์ „์˜ 455์ค„).

        return "" + this.form_field.offsetWidth + "px";

๋‹ค์Œ์œผ๋กœ ๊ต์ฒดํ•˜์‹ญ์‹œ์˜ค.

        var calculatedWidth = this.form_field.offsetWidth;
        // Fix for zero width on hidden inputs.
        if (0 == calculatedWidth) {
          var clone = this.form_field_jq.clone();
          clone.css("visibility", "hidden");
          clone.appendTo('body');
          calculatedWidth = clone.offsetWidth;
          clone.remove();
        }
        return "" + calculatedWidth + "px";

๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@danjjohnson ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์œ ์ผํ•œ ๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ณ€๊ฒฝํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

clone.offsetWidth; 

์—๊ฒŒ

clone.outerWidth();

์–ด๋–ค ์ด์œ ๋กœ clone.offsetWidth๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

์นœ์• ํ•˜๋Š”,

chosen-width

์ด ๋ฒ„๊ทธ๋Š” Firefox์—์„œ ๋ฐœ์ƒํ•˜๋ฉฐ Chrome ๋˜๋Š” ๊ธฐํƒ€ ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ฒซ ๋ฒˆ์งธ ์ด๋ฏธ์ง€(์ƒ๋‹จ)
์Šคํฌ๋กค๋ฐ”๊ฐ€ ์žˆ๊ณ  ์—†๋Š” ๊ฒฝ์šฐ ์„ ํƒํ•œ ์„ค์ • ๋„ˆ๋น„์ž…๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ด๋ฏธ์ง€(๊ฐ€์šด๋ฐ)
์ฒซ ๋ฒˆ์งธ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์Šคํฌ๋กค๋ฐ”๊ฐ€ ์žˆ์–ด์„œ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ–ˆ๋Š”๋ฐ ์ด๋ฒˆ์—๋Š” ์Šคํฌ๋กค๋ฐ”๊ฐ€ ์ œ๋Œ€๋กœ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

์„ธ ๋ฒˆ์งธ ์ด๋ฏธ์ง€(ํ•˜๋‹จ)
์ด๊ฒƒ์ด ์Šคํฌ๋กค ๋ง‰๋Œ€๊ฐ€ ์—†๋Š” ์ฒซ ๋ฒˆ์งธ ์ด๋ฏธ์ง€๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ํ…Œ์ŠคํŠธ๋Š” ์„ ํƒํ•œ ๋„ˆ๋น„๋ฅผ width: 100% !important

:thumbsup: @johnmerced ์˜ ์ˆ˜์ •์œผ๋กœ @danjjohnson ์˜ ์ˆ˜์ •

๊ฐ„๋‹จํ•˜๊ณ  ์ž‘๋™ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ ์€ ๋„ˆ๋น„๊ฐ€ 0์ด ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

   // don't let the width to be "0"
   $(".chosen-select,.chosen-multiple-select").each(function(){
        if($(this).width() == 0){
            $(this).width(240);
        }
    });
    // call it :)
    $(".chosen-select,.chosen-multiple-select").chosen({allow_single_deselect:true});

์–ด์ด,
์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‚ด ์†”๋ฃจ์…˜์€ ์ง€๊ธˆ๊นŒ์ง€ ๊ฒŒ์‹œ๋œ ์†”๋ฃจ์…˜(1.2.0 ์„ ํƒ)์˜ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค.

    AbstractChosen.prototype.container_width = function () {
        if (this.options.width != null) {
            return this.options.width;
        } else {
            //Original:
            //return "" + this.form_field.offsetWidth + "px";
            //Workaround:
            if(this.form_field.offsetWidth > 0) {
                return "" + this.form_field.offsetWidth + "px";
            } else {
                if($(this.form_field).css('width')) {
                    return parseInt($(this.form_field).css('width'),10) + "px";
                } else {
                    return "" + $(this.form_field).outerWidth() + "px";
                }
            }
        }
    };

์ˆจ๊ฒจ์ง„ ์„ ํƒ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ •์  CSS ๋„ˆ๋น„(px)๋ฅผ ์ •์˜ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ „๋ฐ˜์ ์ธ ์ˆ˜์ •์ด ์—ฌ์ „ํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” ์ฐฝ์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์„ ํƒ ํ•ญ๋ชฉ์ด ํ•ญ์ƒ ์ดˆ๊ธฐํ™”๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ํ‘œ์‹œ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์€ ์ˆจ๊ฒจ์ ธ์žˆ์„ ๋•Œ ์ดˆ๊ธฐํ™”์— ํ•„์š”ํ•œ ๋„ˆ๋น„๋ฅผ ์ถ”์ธกํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ‘œ์‹œ๋˜๊ฑฐ๋‚˜ ์ฐฝ์˜ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋  ๋•Œ ์„ ํƒ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒํ•œ ๊ฐœ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—†๋‚˜์š”? ํฌ๊ธฐ(resize event ๋˜๋Š” onShow ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ)๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋ฅผ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒํ•œ ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” API ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์–ด๋–ป๊ฒŒ ๋“  ๋‹ค์‹œ ์ดˆ๊ธฐํ™”?

:+1: ์ˆ˜์ •์„ ์œ„ํ•ด. ์˜ค๋Š˜ ์ด๊ฒƒ์— ๋ถ€๋”ช์ณค๋‹ค.

:+1: ์ด๊ฒƒ์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ _way_ ๋‚ญ๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ๋ชจ๋‹ฌ์˜ ํฌ๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 4.0 ๋ฆด๋ฆฌ์Šค์—์„œ ์ˆ˜์ •ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@danjjohnson ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ๋‹ค๋ฅธ ์š”์†Œ๋ณด๋‹ค ํ›จ์”ฌ ์ž‘์„ ๋•Œ ์ˆ˜์ •์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

1

@danjjohnson ์„ ๊ธฐ๋ฐ˜์œผ๋กœ

๋งˆ๊ตฌ ์ž๋ฅด๊ธฐ

๋ผ์ธ ์ฐพ๊ธฐ

return "" + this.form_field.offsetWidth + "px";

๋กœ ๋Œ€์ฒด

var calculatedWidth = this.form_field.offsetWidth;
          // Fix for zero width on hidden inputs.
          if (0 == calculatedWidth) {
              var clone = this.form_field_jq.clone();
              clone.css({"left": 10000, "position": "fixed"});
              clone.appendTo('body');
              calculatedWidth = clone.outerWidth();
              clone.remove();
          }
          return "" + calculatedWidth + "px";

$('์„ ํƒ').chosen({ํญ: '100%'}); @pfiller ๊ฐ€ ์ ‘์„ ์ˆ˜ ์žˆ๋Š” ํŒจ๋„์—์„œ ์ €๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”

๋‚ด ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์ž์‚ฐ์„ ๋กœ๋“œํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ป๊ฒŒ ์„ ํƒ๋œ ๊ฒ€์ƒ‰ ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•„์ง ๋ Œ๋”๋ง๋˜์ง€ ์•Š์€ ํ…œํ”Œ๋ฆฟ์—์„œ ์ •์  ์„ ํƒ์„ ๋กœ๋“œํ•  ๋•Œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋ฅผ ์‹œ๋„ํ•  ๋•Œ ๊ณ„์ธต ๊ตฌ์กฐ์— ๋ฉ”ํŠธ๋ฆญ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. 0 ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ๋ž˜ํ•‘ํ•˜๋ฉด ์ด๋ฒคํŠธ ๋Œ€๊ธฐ์—ด์˜ ๋๊นŒ์ง€ ์ดˆ๊ธฐํ™”๊ฐ€ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

// Found this in chosen.jquery.js and patched it as follows
AbstractChosen = (function () {
    function AbstractChosen(form_field, options) {
        if (!AbstractChosen.browser_is_supported()) {
            return;
        }

        var self = this;
        window.setTimeout(function () {
            self.form_field = form_field;
            self.options = options != null ? options : {};
            self.is_multiple = self.form_field.multiple;
            self.set_default_text();
            self.set_default_values();
            self.setup();
            self.set_up_html();
            self.register_observers();
        }, 0);
    }

๋ฐฉ๊ธˆ ์ด ๋ฒ„๊ทธ์— ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. 100% ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@harvesthq ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ˆ˜๋ฝํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์•„์ง ์ตœ์„ ์˜ ์†”๋ฃจ์…˜์ด ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๊ธฐ๊บผ์ด ์ˆ˜์ •ํ•˜๊ณ  ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค :heart:

์ด์— ๋Œ€ํ•œ ๊ฐ•๋ ฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ng-show ๋Œ€์‹  ng-if๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜๊ณ  ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋งŽ์€ ์ƒํ™ฉ์—์„œ ng-if๊ฐ€ ์„ ํ˜ธ๋˜๋Š” ์„ ํƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค. ์†์ƒ๋œ ng-select๋ฅผ ๋ณต๊ตฌํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์žฌ๊ท€ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค(ng-if, ng-controller, ng-init ๋ฐ ng-template์˜ ์กฐํ•ฉ ์‚ฌ์šฉ).

๊ทธ๋ž˜์„œ ์ด 4๋…„๋œ ๋ฌธ์ œ๊ฐ€ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค?!?!

+1

๊ทธ ์‚ฌ์ด์— +1... ๋‚˜๋Š” select2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

์„ ํƒํ•œ ์„ ํƒ ๋ชฉ๋ก์„ ํด๋ฆญํ•˜๋ฉด ์˜์—ญ์— ์Šคํ”ผ๋„ˆ๊ฐ€ ํ™•์žฅ๋˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์„ ํƒํ•œ jquery์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ๋™์•ˆ ๋ฐœ์ƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ jquery๋กœ ์—„์ฒญ๋‚œ ์ˆ˜์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ??

์–ผ๋งˆ๋‚˜ ์žฅ์—„ํ•œ 5 ๋…„ ๋ฒ„๊ทธ ... ์—ฌ์ „ํžˆ ์‚ฌ๋žŒ๋“ค์„ ๋ฌผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (์•„์•ผ!).

Google์—๋Š” ์ˆจ๊ฒจ์ง„ div์— ์ œ๋Œ€๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ์œ ์‚ฌํ•œ ๋ฒ„๊ทธ๊ฐ€ ์ง€๋„์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ์—๋Š” ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฌ์šด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์ž‘๋…„ IIRC์— Google ์ง€๋„ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ณด๊ณ ์„œ๋ฅผ ์ฐพ๊ธฐ ์ „์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ฐ˜๋‚˜์ ˆ์„ ์š•ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์‹œ๋„๋ฅผ ํ•˜๋ฉฐ ๋ณด๋ƒˆ์Šต๋‹ˆ๊นŒ? ์ธ๊ธฐ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ๋Š” ์ด์™€ ๊ฐ™์€ ๋ฒ„๊ทธ๋Š” ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•ฉ๋‹ˆ๋‹ค. ๋งค๋…„ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฐฐ์šฐ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์ˆ˜๋ฅผ ๊ณฑํ•˜๋ฉด ์ด ๋น„์šฉ์€ ์•„๋งˆ๋„ ์–ด๋งˆ์–ด๋งˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค... ๊ทธ๋“ค์ด ๊ณ ์น  ์ƒ๊ฐ์ด ์—†๋‹ค๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ์ˆ˜์ •ํ•˜๋ฉด ์•„๋งˆ๋„ ๋ฐฐํฌ๋œ ์ˆ˜๋งŽ์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๊ณผ ์ด์ƒํ•˜๊ฒŒ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ทธ๋“ค์€ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์žˆ์Œ์„ ์ธ์ •ํ•˜๊ณ  ๋ฌธ์„œ์—์„œ ๋ˆˆ์— ๋„๋Š” ๊ณณ์— ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ฌธ์„œํ™”ํ•˜์—ฌ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“œ๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช์ง€ ์•Š๋„๋ก(๋˜๋Š” ๋ฏธ์Šค) ์ด ๋ฌผ๊ฑด์— ๋Œ€ํ•œ ๋งˆ๊ฐ์ผ.

๋‚ด "์ „์ฒด" ์ˆ˜์ •์€ ๋‹ค๋ฅธ ์ˆ˜์ •๊ณผ ์œ ์‚ฌํ•˜๋ฉฐ ๋งˆํฌ์—…์˜ ๋ชจ๋“  ์„ ํƒ ๋„ˆ๋น„๊ฐ€ ์ƒ์œ„ div์˜ 100%๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ .chosen()์„ ์ดˆ๊ธฐํ™”ํ•œ ์งํ›„์— ์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

```
$(".chosen-container").each(ํ•จ์ˆ˜(i, ์š”์†Œ) {
if ($(elem).width() == 0) {
$(elem).width("100%");
}
});
````

์š”์†Œ๊ฐ€ ์ฒ˜์Œ์— CSS ์ˆจ๊ฒจ์ง„ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์— ์žˆ์—ˆ๋‹ค๊ฐ€ ํ‘œ์‹œ๋  ๋•Œ ๋„ˆ๋น„๊ฐ€ 0px์ธ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋ถ„๋“ค์—๊ฒŒ - ๋‚ด๊ฐ€ ์ฐพ์€ ์ˆ˜์ • ์‚ฌํ•ญ์€ js ๊ตฌ์„ฑ์—์„œ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

var config = { '.chosen-select' : {}, '.chosen-select-width' : {width:"95%"} } for (var selector in config) { $(selector).chosen(config[selector]); }

๊ทธ๋Ÿฐ ๋‹ค์Œ ์„ ํƒ ์ž…๋ ฅ์— CSS ํด๋ž˜์Šค selected-select-width๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

<select name="f01" class="chosen-select-width" id="item_select_staff">

์„ ํƒํ•œ v1.6.2 ๋ฐ jquery ๋ฒ„์ „ 3.1.1๋กœ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒ๋œ ๋„ˆ๋น„ ์˜ต์…˜(์ž๋™)์„ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

.chosen-container { min-width:5em; }

๋‚ด ์‚ฌ์ดํŠธ์˜ CSS์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(ํ•„์š”์— ๋”ฐ๋ผ ์ตœ์†Œ ๋„ˆ๋น„ ์กฐ์ •). ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์„ ํƒ์˜ ์ด์ƒ์ ์ธ ๋„ˆ๋น„์— ๋งž์ถ”๋ฉด์„œ 0px(๋˜๋Š” ์‚ฌ์šฉํ•˜๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์Œ)๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์„ ํƒ ์š”์†Œ๊ฐ€ ๋‹ค๋ฅธ ์ฝ˜ํ…์ธ ์™€ ์ธ๋ผ์ธ์œผ๋กœ ์žˆ์„ ๋•Œ 100% ๋„ˆ๋น„ ๋˜๋Š” ๊ทธ ํšจ๊ณผ๋ฅผ ๊ฐ•์ œ๋กœ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํ•ต์‹ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ธ๋ผ์ธ ์„ ํƒ ์š”์†Œ๋ฅผ ํ—ˆ์šฉํ•˜๊ณ  ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ์ง์ ‘์ ์ธ ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

7๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ๋„ ์ด๊ฒŒ ์–ด๋–ป๊ฒŒ ๊นจ์ง€์ง€?

๋ถ€ํŠธ์ŠคํŠธ๋žฉ 3์„ ์‚ฌ์šฉํ•˜๋Š” ์ž‘์—…์€ ๋‹ค์Œ ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

.chosen-container {
    min-width: 90%;
}

๋ถ€ํŠธ์ŠคํŠธ๋žฉ 3์„ ์‚ฌ์šฉํ•˜๋Š” ์ž‘์—…์€ ๋‹ค์Œ ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

.chosen-container {
    min-width: 90%;
}

๊ตฌ๋งคํ•ด๋„ ๋“œ๋กญ๋‹ค์šด์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.... @koenvanderlinden

๊ทธ๊ฒƒ์€ ์ด๋ฏธ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค
https://harvesthq.github.io/chosen/options.html
width ์˜ต์…˜ ๋ฐ ์„ค๋ช… ํ™•์ธ

@qbadev ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์š”์†Œ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ๋‚ด์šฉ์— ๋งž๊ฒŒ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‹ค์ œ๋กœ ์ˆ˜์ • ์‚ฌํ•ญ์œผ๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค(ํŠนํžˆ min-width๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ณด๋‹ค ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•  ๋•Œ).

๋ฌธ์„œ์˜ ์„ค๋ช…์€ ๋ฒ„๊ทธ(ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ)๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๊ณ  ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์ž ์žฌ์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

@koenvanderlinden ์€ min-width:90%; ๊ถŒ์žฅํ•˜๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ 90% ๋„ˆ๋น„์ด๊ณ  ์„ ํƒ ํ•ญ๋ชฉ์˜ ๋‚ด์šฉ์— ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ตœ๋Œ€ 100% ๋„ˆ๋น„์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์‹œ min-width:5em; (์ •ํ™•ํ•œ em ๊ฐ’์€ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋”ฐ๋ผ ๋‹ค๋ฆ„)๋ฅผ ์„ ํƒํ•˜๋ฏ€๋กœ ๊ฒฐ์ฝ” ์ž‘์ง€ ์•Š์ง€๋งŒ ๋ถ€๋ชจ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํฌ๊ธฐ ์กฐ์ •ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์„ ํƒ์˜ ๋‚ด์šฉ์— ๋งž๊ฒŒ ํ™•์žฅํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์š”์†Œ.

@KZeni ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ˆ˜์ •์ด๋ผ๊ณ  ๋งํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค. ๋‚ด ์ฃผ์š” ๋ฌธ์ œ๋Š” Chosen์ด ์ดˆ๊ธฐํ™” ํ›„ ๋„ˆ๋น„๊ฐ€ ๊ฑฐ์˜ 0์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ "์ˆ˜์ •" ํ›„ ์„ ํƒํ•œ ํ•ญ๋ชฉ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ์ƒ์œ„ ์š”์†Œ์— ์ ์šฉ๋œ CSS ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ์ฒด๊ฐ€ 0 ๋„ˆ๋น„์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์— ์—ฌ๋Ÿฌ ๋ฒˆ ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํŽธ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ˆœ๊ฐ„์— ์„ ํƒ ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋˜๋ฉด ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์ง€๋งŒ ์ˆจ๊ฒจ์ ธ ์žˆ์œผ๋ฉด width ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ •์˜ ๋„ˆ๋น„ ์ง€์›
Chosen๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž ์ •์˜ ๋„ˆ๋น„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ Chosen์„ ๋งŒ๋“ค ๋•Œ ์˜ต์…˜์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ๋งŒํผ ์‰ฝ์Šต๋‹ˆ๋‹ค.
$(".chosen-select").chosen({width: "95%"});

https://harvesthq.github.io/chosen/

jQuery๋ฅผ 1.*์—์„œ 3.* ๋ฆด๋ฆฌ์Šค๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ์ด ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ•ด๊ฒฐ:

selected.jquery.js:543
AbstractChosen.prototype.container_width = ํ•จ์ˆ˜() {
return this.form_field.offsetWidth + "px";
->
return $(this.form_field).outerWidth() + "px";

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰