๋๋น๋ฅผ ์ค์ ํ ๋ 0์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ํจ๊ณผ๊ฐ ์์ต๋๋ค: http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width /
์ฝ๋๋ elmt.is(:visible) ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ๊ทธ๋ ๋ค๋ฉด ์์ ๊ธฐ์ ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ํฌํฌ๋ก ๊ณ ์ณ์ ๊ธฐ์ฉ๋๋ค. @ ์ ์ฐจ๊ฐ ์ด๋ป๊ฒ ๋๋์? ๊ทธ๋ฅ ์ปคํผ์คํฌ๋ฆฝํธ๋ฅผ ํจ์นํ์๊ฒ ์ต๋๊น? js ๋ฐ js min์ ์ด๋ป๊ฒ ์์ฑํฉ๋๊น?
์, ์ปคํผ ์คํฌ๋ฆฝํธ๋ฅผ ํจ์นํด์ผ ํฉ๋๋ค. ๋ํ ๋๋ ์จ๊ฒจ์ง ์์๋ฅผ ์ค์ ํ๋ ๊ธฐ๋ฅ์ ๋ํ ๊ฒ์ ๋๋ค.
์ค๋ ์ด ๋ฌธ์ ์ +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๊ฐ ์ ์๋์ง ์์ ๊ฐ์ ์ ๊ณตํ์ต๋๋ค.
์น์ ํ๋,
์ด ๋ฒ๊ทธ๋ 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 ์ฒซ ๋ฒ์งธ ์์๊ฐ ๋ค๋ฅธ ์์๋ณด๋ค ํจ์ฌ ์์ ๋ ์์ ์ผ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ต๋๋ค.
@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%"});
jQuery๋ฅผ 1.*์์ 3.* ๋ฆด๋ฆฌ์ค๋ก ์
๊ทธ๋ ์ด๋ํ ํ ์ด ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค.
ํด๊ฒฐ:
selected.jquery.js:543
AbstractChosen.prototype.container_width = ํจ์() {
return this.form_field.offsetWidth + "px";
->
return $(this.form_field).outerWidth() + "px";
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
7๋ ์ด ์ง๋ ์ง๊ธ๋ ์ด๊ฒ ์ด๋ป๊ฒ ๊นจ์ง์ง?