Chosen: λ„ˆλΉ„κ°€ 0인 문제 μˆ˜μ •

에 λ§Œλ“  2012λ…„ 01μ›” 30일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: harvesthq/chosen

λ‚˜λŠ” Chosen을 μ’‹μ•„ν•˜μ§€λ§Œ λ§Žμ€ ajax 및 μˆ¨κ²¨μ§„ νŒ¨λ„μ„ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— Chosen이 λ„ˆλΉ„κ°€ 0인 선택을 λ Œλ”λ§ν•˜λŠ” 데 지μ˜₯ 같은 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. λΆ„λͺ…νžˆ 선택이 ν‘œμ‹œλ˜κΈ° 전에 λ„ˆλΉ„κ°€ κ³„μ‚°λ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

적어도 제 κ²½μš°μ—λŠ” 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ”(λ˜λŠ” ν•΄κ²° 방법을 μ œκ³΅ν•˜λŠ”) 쀄을 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

Chosen.prototype.set_up_html ν•¨μˆ˜μ—μ„œ "this.f_width = this.form_field_jq.outerWidth();" λ‹€μŒμ— λ‹€μŒμ„ μΆ”κ°€ν•©λ‹ˆλ‹€.

  if (this.f_width==0) this.f_width = this.form_field_jq.css("width");

λΆ„λͺ…νžˆ 이것은 λ„ˆλΉ„κ°€ CSSμ—μ„œ λͺ…μ‹œμ μœΌλ‘œ μ„€μ •λœ κ²½μš°μ—λ§Œ μž‘λ™ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‚΄ κ²½μš°μ—λŠ” λ¬Έμ œκ°€ ν•΄κ²°λ©λ‹ˆλ‹€. 더 λ‚˜μ€ μˆ˜μ •μ„ ν™˜μ˜ν•©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‚΄ ν”„λ‘œμ νŠΈμ—μ„œ 잘 μž‘λ™ν•˜λ―€λ‘œ 이것이 λˆ„κ΅°κ°€λ₯Ό 돕기λ₯Ό λ°”λžλ‹ˆλ‹€.

방금 λ‹€μŒ CSS κ·œμΉ™μ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

.chosen-container
{
    width: 100% !important;
}

λͺ¨λ“  14 λŒ“κΈ€

#92의 λ³΅μ œν’ˆμž…λ‹ˆλ‹€.

μˆ˜μ • 사항에 λŒ€ν•΄ λ‹€μŒκ³Ό 같이 λ³€κ²½ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.
if (/px/.test(this.form_field_jq.css("λ„ˆλΉ„"))){
this.f_width = this.form_field_jq.css("λ„ˆλΉ„").replace("ν”½μ…€", "");
} 또 λ‹€λ₯Έ {
this.f_width = this.form_field_jq.css("λ„ˆλΉ„");
}
this.form_field_jq.css("width"); 끝에 pxκ°€ μžˆλŠ” λ„ˆλΉ„λ₯Ό λ°˜ν™˜ν–ˆμŠ΅λ‹ˆλ‹€.

μ†”λ£¨μ…˜μ΄ 있으며 이것은 λ‚΄ ν”„λ‘œμ νŠΈμ—μ„œ 잘 μž‘λ™ν•©λ‹ˆλ‹€.

this.f_width = this.form_field_jq.outerWidth(); // selected.jqery.js의 이 쀄 μ•„λž˜μ— μ•„λž˜ μ½”λ“œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.

  if (this.f_width==0){ 
      var cloneObj= this.form_field_jq.clone();
      cloneObj.removeAttr('id');
      $(document.body).append(cloneObj);
      var w = cloneObj.width();
      cloneObj.remove();
      this.f_width=w;
  }

λ‚΄ ν”„λ‘œμ νŠΈμ—μ„œ 잘 μž‘λ™ν•˜λ―€λ‘œ 이것이 λˆ„κ΅°κ°€λ₯Ό 돕기λ₯Ό λ°”λžλ‹ˆλ‹€.

방금 λ‹€μŒ CSS κ·œμΉ™μ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

.chosen-container
{
    width: 100% !important;
}

fabioduque κ°μ‚¬ν•©λ‹ˆλ‹€! μ„ νƒν•œ μ»¨ν…Œμ΄λ„ˆμ— CSSλ₯Ό μ„€μ •ν•˜λ©΄ λ‚΄ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€!

CSSμ—μ„œ λ„ˆλΉ„λ₯Ό μ„€μ •ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. Chosen을 μ΄ˆκΈ°ν™”ν•  λ•Œ λ°”λ‘œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

$(".chosen-select").chosen({ width: '100%' }); // any acceptable CSS width will work

사싀, λ‚΄κ°€ μ„ νƒν•œ μš”μ†Œλ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ KO bindingHandlerλ₯Ό λ§Œλ“€μ—ˆκ³  λͺ¨λ“  μš”μ†Œμ˜ λ„ˆλΉ„κ°€ 100%λŠ” μ•„λ‹ˆλ―€λ‘œ CSSκ°€ μ €μ—κ²Œ λ§žλŠ” λ°©λ²•μž…λ‹ˆλ‹€. λ‚΄ bindingHandlerμ—μ„œ μ˜΅μ…˜μœΌλ‘œ λ„ˆλΉ„λ₯Ό μ„€μ •ν•  수 μžˆμ§€λ§Œ.

@fabioduque κ°μ‚¬ν•©λ‹ˆλ‹€. μ €μ—κ²Œλ„

@pfiller , κ°μ‚¬ν•©λ‹ˆλ‹€! λ‚΄ 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

가끔 μ™œ 이런 일이? :(

λ‚΄κ°€ μ„ νƒν•œ λͺ¨λ“  μœ„μΉ˜λ₯Ό 보고 싢지 μ•Šμ•˜κΈ° λ•Œλ¬Έμ— CSS μ ‘κ·Ό 방식을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€(λ‹€λ₯Έ κ°œλ°œμžλŠ” μƒˆ 보기λ₯Ό λΉŒλ“œν•  λ•Œ λ™μΌν•œ λ¬Έμ œκ°€ μžˆμ„ 수 있음). λ”°λΌμ„œ CSSλŠ” μ „ μ„Έκ³„μ μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€. @fabioduque 감사

λ‚΄ WordPress ν”ŒλŸ¬κ·ΈμΈ 쀑 ν•˜λ‚˜μ—μ„œ 쑰건뢀 λ…Όλ¦¬λ‘œ 이 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 특히 λ„ˆλΉ„κ°€ 0px둜 μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€... μ΄ˆκΈ°ν™” 후에도(μ„ νƒν•œ ν•„λ“œλ₯Ό chosen:ready λŒ€κΈ°μ—΄μ— μΆ”κ°€ν•˜λ―€λ‘œ 이미 μ΄ˆκΈ°ν™”λ˜μ–΄ μžˆλŠ” 경우) 그리고 λΆ€λͺ¨ divλ₯Ό μˆ¨κΉλ‹ˆλ‹€) ... ν•˜μ§€λ§Œ μ–΄μ¨Œλ“  이것은 chosen:updated μ‹€ν–‰ν•˜κΈ° 전에 μƒμœ„ DIV μš”μ†Œλ₯Ό ν‘œμ‹œν•˜κΈ° μœ„ν•΄ jQuery μ½”λ“œκ°€ 싀행될 λ•Œ 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 μ‚¬μš©ν•œ κ²ƒμž…λ‹ˆλ‹€.

// This is the original select field
$field = $( '#' + field );

// This is the select field wrapper that I hide (just shown for reference)
$( '.fieldset-' + field ).show();

// Chosen container ID will be original select element ID + _chosen
var $chosen_container = $( '#' + field + '_chosen' );
if( $chosen_container && $chosen_container.width() === 0 ){
    $chosen_container.css( 'width', '100%' );
}

$field.trigger( 'chosen:updated' );

λ‹€λ₯Έ μ‚¬λžŒμ΄ μ—¬μ „νžˆ 이 문제λ₯Ό κ²ͺκ³  μžˆλ‹€λ©΄ $(".chosen-select").chosen()을 ν˜ΈμΆœν•  λ•Œ ν™•μΈν•˜μ‹­μ‹œμ˜€. νŽ˜μ΄μ§€ λ‘œλ“œ μ‹œ μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜ 호좜 λͺ©λ‘μ΄ μžˆμ—ˆλŠ”λ° .chosen() ν˜ΈμΆœμ„ λͺ©λ‘ 맨 μœ„λ‘œ μ΄λ™ν–ˆμ„ λ•Œ λ„ˆλΉ„κ°€ 더 이상 0이 μ•„λ‹Œ μ μ ˆν•˜κ²Œ μ μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μœ„μ—μ„œ μ΄λ™ν•œ κΈ°λŠ₯은 일뢀 데이터λ₯Ό κ²€μƒ‰ν•˜κ³  λ§Žμ€ dom μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

검색 μ•„μ΄μ½˜μ΄ 2개 μžˆλŠ” μ΄μœ λŠ” μœ„μ˜ 두 가지 μ†”λ£¨μ…˜μ„ λͺ¨λ‘ μ‹œλ„ν•œ κ²ƒμž…λ‹ˆλ‹€.
Screenshot from 2019-08-23 00-34-17

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰