Chosen: Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½Ρ‹

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 30 янв. 2012  Β·  14ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: harvesthq/chosen

МнС нравится Chosen, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΌΠ½ΠΎΠ³ΠΎ ajax ΠΈ скрытых ΠΏΠ°Π½Π΅Π»Π΅ΠΉ, Ρƒ мСня Π±Ρ‹Π»ΠΈ адскиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Chosen, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΡˆΠΈΡ€ΠΈΠ½Π° вычисляСтся Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹Π±ΠΎΡ€ станСт Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ.

Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» строку, которая, каТСтся, Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ (ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ), ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π² ΠΌΠΎΠ΅ΠΌ случаС.

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 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("width "))) {
this.f_width = this.form_field_jq.css ("ΡˆΠΈΡ€ΠΈΠ½Π°"). replace ("px", "");
} Π΅Ρ‰Π΅ {
this.f_width = this.form_field_jq.css (Β«ΡˆΠΈΡ€ΠΈΠ½Π°Β»);
}
ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ this.form_field_jq.css ("ΡˆΠΈΡ€ΠΈΠ½Π°"); Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» ΡˆΠΈΡ€ΠΈΠ½Ρƒ с пиксСлСм Π² ΠΊΠΎΠ½Ρ†Π΅

Π£ мСня Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΎΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅:

this.f_width = this.form_field_jq.outerWidth (); // добавляСм Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ этой строкой Π½Π° selected.jqeury.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 ... Π² частности, с ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ, установлСнной Π½Π° 0 пиксСлСй ... Π΄Π°ΠΆΠ΅ послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ с chosen:ready поэтому, Ссли ΠΎΠ½ ΡƒΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ я ΡΠΊΡ€Ρ‹Π²Π°ΡŽ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ div) ... Π½ΠΎ Π² любом случаС это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я использовал, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΉ ΠΊΠΎΠ΄ jQuery запускаСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт DIV ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ chosen:updated

// 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' );

Если Ρƒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ $ (". Selected-select"). Selected (). Π£ мСня Π±Ρ‹Π» список Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ javascript ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы, ΠΊΠΎΠ³Π΄Π° я пСрСмСстил Π²Ρ‹Π·ΠΎΠ² .chosen () Π² Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Ρ‡Π°ΡΡ‚ΡŒ списка, ΠΎΠ½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» ΡˆΠΈΡ€ΠΈΠ½Ρƒ, большС Π½Π΅ Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я пСрСмСстил Π²Ρ‹ΡˆΠ΅, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ выполняли мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с dom.

ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρƒ мСня Π΅ΡΡ‚ΡŒ 2 Π·Π½Π°Ρ‡ΠΊΠ° поиска, я ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΎΠ±Π° ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ -
Screenshot from 2019-08-23 00-34-17

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ