ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ 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. ΠΠΎ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΡΡΠ΅Π΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π»ΠΎΡΡ Π±Ρ.
ΠΡΠ±Π»ΠΈΠΊΠ°Ρ β 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 Π·Π½Π°ΡΠΊΠ° ΠΏΠΎΠΈΡΠΊΠ°, Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΎΠ±Π° ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ -
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ CSS: