From 7303852862575de61a70d3fa71dd3d5b59ea85af Mon Sep 17 00:00:00 2001 From: Cyrille Jouineau Date: Wed, 26 Jun 2013 16:32:07 +0200 Subject: [PATCH] replaces a
inside a with a and minor code cleaning --- select2.css | 20 ++++---- select2.js | 145 ++++++++++++++++++++++++---------------------------- 2 files changed, 77 insertions(+), 88 deletions(-) diff --git a/select2.css b/select2.css index 28d9a594..d709820f 100644 --- a/select2.css +++ b/select2.css @@ -82,11 +82,11 @@ Version: @@ver@@ Timestamp: @@timestamp@@ background-image: linear-gradient(top, #eeeeee 0%,#ffffff 90%); } -.select2-container.select2-allowclear .select2-choice span { +.select2-container.select2-allowclear .select2-choice .select2-chosen { margin-right: 42px; } -.select2-container .select2-choice > span { +.select2-container .select2-choice > .select2-chosen { margin-right: 26px; display: block; overflow: hidden; @@ -152,7 +152,7 @@ Version: @@ver@@ Timestamp: @@timestamp@@ .select2-drop { width: 100%; - margin-top:-1px; + margin-top: -1px; position: absolute; z-index: 9999; top: 100%; @@ -203,7 +203,7 @@ Version: @@ver@@ Timestamp: @@timestamp@@ border-top: 1px solid #5897fb; } -.select2-container .select2-choice div { +.select2-container .select2-choice .select2-arrow { display: inline-block; width: 18px; height: 100%; @@ -230,7 +230,7 @@ Version: @@ver@@ Timestamp: @@timestamp@@ background-image: linear-gradient(top, #cccccc 0%, #eeeeee 60%); } -.select2-container .select2-choice div b { +.select2-container .select2-choice .select2-arrow b { display: block; width: 100%; height: 100%; @@ -342,12 +342,12 @@ Version: @@ver@@ Timestamp: @@timestamp@@ background-image: linear-gradient(bottom, #ffffff 0%,#eeeeee 50%); } -.select2-dropdown-open .select2-choice div { +.select2-dropdown-open .select2-choice .select2-arrow { background: transparent; border-left: none; filter: none; } -.select2-dropdown-open .select2-choice div b { +.select2-dropdown-open .select2-choice .select2-arrow b { background-position: -18px 1px; } @@ -464,7 +464,7 @@ disabled look for disabled choices in the results dropdown cursor: default; } -.select2-container.select2-container-disabled .select2-choice div { +.select2-container.select2-container-disabled .select2-choice .select2-arrow { background-color: #f4f4f4; background-image: none; border-left: 0; @@ -584,7 +584,7 @@ disabled look for disabled choices in the results dropdown background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); } -.select2-container-multi .select2-choices .select2-search-choice span { +.select2-container-multi .select2-choices .select2-search-choice .select2-chosen { cursor: default; } .select2-container-multi .select2-choices .select2-search-choice-focus { @@ -669,7 +669,7 @@ disabled look for disabled choices in the results dropdown /* Retina-ize icons */ @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) { - .select2-search input, .select2-search-choice-close, .select2-container .select2-choice abbr, .select2-container .select2-choice div b { + .select2-search input, .select2-search-choice-close, .select2-container .select2-choice abbr, .select2-container .select2-choice .select2-arrow b { background-image: url('select2x2.png') !important; background-repeat: no-repeat !important; background-size: 60px 40px !important; diff --git a/select2.js b/select2.js index ec476a82..90860747 100644 --- a/select2.js +++ b/select2.js @@ -18,24 +18,24 @@ Apache License or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT W CONDITIONS OF ANY KIND, either express or implied. See the Apache License and the GPL License for the specific language governing permissions and limitations under the Apache License and the GPL License. */ - (function ($) { - if(typeof $.fn.each2 == "undefined"){ - $.fn.extend({ - /* - * 4-10 times faster .each replacement - * use it carefully, as it overrides jQuery context of element on each iteration - */ - each2 : function (c) { - var j = $([0]), i = -1, l = this.length; - while ( - ++i < l - && (j.context = j[0] = this[i]) - && c.call(j[0], i, j) !== false //"this"=DOM, i=index, j=jQuery object - ); - return this; - } - }); - } +(function ($) { + if(typeof $.fn.each2 == "undefined") { + $.fn.extend({ + /* + * 4-10 times faster .each replacement + * use it carefully, as it overrides jQuery context of element on each iteration + */ + each2 : function (c) { + var j = $([0]), i = -1, l = this.length; + while ( + ++i < l + && (j.context = j[0] = this[i]) + && c.call(j[0], i, j) !== false //"this"=DOM, i=index, j=jQuery object + ); + return this; + } + }); + } })(jQuery); (function ($, undefined) { @@ -183,7 +183,7 @@ the specific language governing permissions and limitations under the Apache Lic * the elements under the pointer are scrolled. */ function installFilteredMouseMove(element) { - element.on("mousemove", function (e) { + element.on("mousemove", function (e) { var lastpos = lastMousePosition; if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) { $(e.target).trigger("mousemove-filtered", e); @@ -291,22 +291,22 @@ the specific language governing permissions and limitations under the Apache Lic function measureTextWidth(e) { if (!sizer){ - var style = e[0].currentStyle || window.getComputedStyle(e[0], null); - sizer = $(document.createElement("div")).css({ - position: "absolute", - left: "-10000px", - top: "-10000px", - display: "none", - fontSize: style.fontSize, - fontFamily: style.fontFamily, - fontStyle: style.fontStyle, - fontWeight: style.fontWeight, - letterSpacing: style.letterSpacing, - textTransform: style.textTransform, - whiteSpace: "nowrap" - }); + var style = e[0].currentStyle || window.getComputedStyle(e[0], null); + sizer = $(document.createElement("div")).css({ + position: "absolute", + left: "-10000px", + top: "-10000px", + display: "none", + fontSize: style.fontSize, + fontFamily: style.fontFamily, + fontStyle: style.fontStyle, + fontWeight: style.fontWeight, + letterSpacing: style.letterSpacing, + textTransform: style.textTransform, + whiteSpace: "nowrap" + }); sizer.attr("class","select2-sizer"); - $("body").append(sizer); + $("body").append(sizer); } sizer.text(e.val()); return sizer.width(); @@ -464,12 +464,12 @@ the specific language governing permissions and limitations under the Apache Lic tmp, text = function (item) { return ""+item.text; }; // function used to retrieve the text portion of a data item that is matched against the search - if ($.isArray(data)) { + if ($.isArray(data)) { tmp = data; data = { results: tmp }; } - if ($.isFunction(data) === false) { + if ($.isFunction(data) === false) { tmp = data; data = function() { return tmp; }; } @@ -985,7 +985,6 @@ the specific language governing permissions and limitations under the Apache Lic var enabled, readonly, self = this; // sync enabled state - var disabled = el.prop("disabled"); if (disabled === undefined) disabled = false; this.enable(!disabled); @@ -1105,14 +1104,14 @@ the specific language governing permissions and limitations under the Apache Lic height = this.container.outerHeight(false), width = this.container.outerWidth(false), dropHeight = $dropdown.outerHeight(false), - viewPortRight = $(window).scrollLeft() + $(window).width(), + viewPortRight = $(window).scrollLeft() + $(window).width(), viewportBottom = $(window).scrollTop() + $(window).height(), dropTop = offset.top + height, dropLeft = offset.left, enoughRoomBelow = dropTop + dropHeight <= viewportBottom, enoughRoomAbove = (offset.top - dropHeight) >= this.body().scrollTop(), - dropWidth = $dropdown.outerWidth(false), - enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight, + dropWidth = $dropdown.outerWidth(false), + enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight, aboveNow = $dropdown.hasClass("select2-drop-above"), bodyOffset, above, @@ -1136,7 +1135,6 @@ the specific language governing permissions and limitations under the Apache Lic //console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body().scrollTop(), "enough?", enoughRoomAbove); // fix positioning when body has an offset and is not position: static - if (this.body().css('position') !== 'static') { bodyOffset = this.body().offset(); dropTop -= bodyOffset.top; @@ -1144,7 +1142,6 @@ the specific language governing permissions and limitations under the Apache Lic } // always prefer the current above/below alignment, unless there is not enough room - if (aboveNow) { above = true; if (!enoughRoomAbove && enoughRoomBelow) above = false; @@ -1435,7 +1432,7 @@ the specific language governing permissions and limitations under the Apache Lic highlightUnderEvent: function (event) { var el = $(event.target).closest(".select2-result-selectable"); if (el.length > 0 && !el.is(".select2-highlighted")) { - var choices = this.findHighlightableChoices(); + var choices = this.findHighlightableChoices(); this.highlight(choices.index(el)); } else if (el.length == 0) { // if we are over an unselectable item remove al highlights @@ -1532,8 +1529,8 @@ the specific language governing permissions and limitations under the Apache Lic if (maxSelSize >=1) { data = this.data(); if ($.isArray(data) && data.length >= maxSelSize && checkFormatter(opts.formatSelectionTooBig, "formatSelectionTooBig")) { - render("
  • " + opts.formatSelectionTooBig(maxSelSize) + "
  • "); - return; + render("
  • " + opts.formatSelectionTooBig(maxSelSize) + "
  • "); + return; } } @@ -1741,21 +1738,21 @@ the specific language governing permissions and limitations under the Apache Lic // single - createContainer: function () { + createContainer: function () { var container = $(document.createElement("div")).attr({ "class": "select2-container" }).html([ "
    ", - "  ", - "
    " , + "  ", + " ", "
    ", "", - "
    " , - " " , - "
      " , - "
    " , + "
    ", + " ", + "
      ", + "
    ", "
    "].join("")); return container; }, @@ -1995,7 +1992,7 @@ the specific language governing permissions and limitations under the Apache Lic if (data) { // guard against queued quick consecutive clicks var placeholderOption = this.getPlaceholderOption(); this.opts.element.val(placeholderOption ? placeholderOption.val() : ""); - this.selection.find("span").empty(); + this.selection.find(".select2-chosen").empty(); this.selection.removeData("select2-data"); this.setPlaceholder(); @@ -2093,7 +2090,7 @@ the specific language governing permissions and limitations under the Apache Lic // check for a placeholder option if attached to a select if (this.select && this.getPlaceholderOption() === undefined) return; - this.selection.find("span").html(this.opts.escapeMarkup(placeholder)); + this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(placeholder)); this.selection.addClass("select2-default"); @@ -2169,7 +2166,7 @@ the specific language governing permissions and limitations under the Apache Lic // single updateSelection: function (data) { - var container=this.selection.find("span"), formatted, cssClass; + var container=this.selection.find(".select2-chosen"), formatted, cssClass; this.selection.data("select2-data", data); @@ -2277,17 +2274,16 @@ the specific language governing permissions and limitations under the Apache Lic var container = $(document.createElement("div")).attr({ "class": "select2-container select2-container-multi" }).html([ - "
      ", - //"
    • California
    • " , - "
    • " , - " " , - "
    • " , - "
    " , - "
    " , - "
      " , - "
    " , + "
      ", + "
    • ", + " ", + "
    • ", + "
    ", + "
    ", + "
      ", + "
    ", "
    "].join("")); - return container; + return container; }, // multi @@ -2380,11 +2376,6 @@ the specific language governing permissions and limitations under the Apache Lic _this.search[0].focus(); _this.selectChoice($(this)); }) - //.sortable({ - // items: " > li", - // tolerance: "pointer", - // revert: 100 - //}); // rewrite labels from original element to focusser this.search.attr("id", "s2id_autogen"+nextUid()); @@ -2619,7 +2610,6 @@ the specific language governing permissions and limitations under the Apache Lic focus: function () { this.close(); this.search.focus(); - //this.opts.element.triggerHandler("focus"); }, // multi @@ -2821,11 +2811,11 @@ the specific language governing permissions and limitations under the Apache Lic //If all results are chosen render formatNoMAtches if(!this.opts.createSearchChoice && !choices.filter('.select2-result:not(.select2-selected)').length > 0){ - if(!data || data && !data.more && this.results.find(".select2-no-results").length === 0) { - if (checkFormatter(self.opts.formatNoMatches, "formatNoMatches")) { + if(!data || data && !data.more && this.results.find(".select2-no-results").length === 0) { + if (checkFormatter(self.opts.formatNoMatches, "formatNoMatches")) { this.results.append("
  • " + self.opts.formatNoMatches(self.search.val()) + "
  • "); } - } + } } }, @@ -2838,7 +2828,7 @@ the specific language governing permissions and limitations under the Apache Lic // multi resizeSearch: function () { var minimumWidth, left, maxWidth, containerLeft, searchWidth, - sideBorderPadding = getSideBorderPadding(this.search); + sideBorderPadding = getSideBorderPadding(this.search); minimumWidth = measureTextWidth(this.search) + 10; @@ -2985,7 +2975,6 @@ the specific language governing permissions and limitations under the Apache Lic this.resizeSearch(); // update selection - this.selection.find(".select2-search-choice").each(function() { val.push(self.opts.id($(this).data("select2-data"))); });