Permalink
Browse files

Merge pull request #7 from schourode/master

A few changes to yaselect, most related to IE7 issues
  • Loading branch information...
choonkeat committed Jul 18, 2011
2 parents 6684674 + 3bfcbdf commit beb671dd4816238606e1cfe0ae5021afbaae0b2d
Showing with 10 additions and 10 deletions.
  1. +2 −2 demo/index.html
  2. +5 −5 jquery.yaselect.js
  3. +3 −3 jquery.yaselect.min.js
View
@@ -16,8 +16,8 @@
.yaselect-wrap, .yaselect-current { cursor: pointer; display: block; }
.yaselect-wrap, .yaselect-current, .yaselect-select { width: 300px; font-size: 15px; }
.yaselect-select { margin-top: 0; padding-top: 0; }
- .yaselect-close { background: url('googlechrome-arrowdown.png') no-repeat 100% 50%; }
- .yaselect-open { background: url('googlechrome-arrowup.png') no-repeat 100% 50%; }
+ .yaselect-current { background: url('googlechrome-arrowdown.png') no-repeat 100% 50%; }
+ .yaselect-open .yaselect-current { background-image: url('googlechrome-arrowup.png'); }
</style>
</head>
<body>
View
@@ -16,13 +16,13 @@ jQuery.fn.yaselect = function(options) {
options = options || {};
return this.each(function(index, select) {
var jselect = jQuery(select).css({position:'absolute',top:0,left:0,zIndex:1}).addClass('yaselect-select'),
- wrap = jQuery('<div class="yaselect-wrap yaselect-open" tabindex="0"><div class="yaselect-current"></div></div>'),
+ wrap = jQuery('<div class="yaselect-wrap" tabindex="0"><div class="yaselect-current"></div></div>'),
anchor = wrap.wrap('<div class="yaselect-anchor" style="position:relative;"></div>').parent(),
+ toggle = function() { anchor.toggleClass('yaselect-open', jselect.is(':visible')); },
gettext = function() { return jselect.find('option:nth(' + (select.selectedIndex || 0) + ')').text(); },
curr = wrap.find('.yaselect-current').text(gettext()),
confirm = function(to_focus_wrap) { jselect.blur(); curr.text(gettext()); jselect.css({top: wrap.outerHeight()}); if (to_focus_wrap) wrap.focus(); };
if (options.hoverOnly || window.navigator && navigator.userAgent.match(/iphone|ipod|ipad/i)) {
- wrap.toggleClass('yaselect-open yaselect-close');
return jselect /* becomes invisible and is placed above wrapper to receive screen tap -- triggering native <select> */
.before(anchor)
.css({opacity: 0.001})
@@ -33,11 +33,11 @@ jQuery.fn.yaselect = function(options) {
.before(anchor)
.keydown(function(e) { if (e.which==13||e.which==32) { e.preventDefault(); confirm(true); } })
.change(function(e) { curr.text(gettext()); })
- .blur(function(e) { jselect.hide(); wrap.toggleClass('yaselect-open yaselect-close'); })
+ .blur(function(e) { jselect.hide(); toggle(); })
.click(function(e) {
if (jselect.is(':hidden')) {
- wrap.toggleClass('yaselect-open yaselect-close');
jselect.show();
+ toggle();
setTimeout(function() { jselect.focus(); }); /* avoid trampling confusion with triggered blur */
} else {
confirm(true);
@@ -47,7 +47,7 @@ jQuery.fn.yaselect = function(options) {
wrap
.mousedown(function(e) { jselect.click(); })
.keydown(function(e) { if ([13,32,37,38,39,40].indexOf(e.which) != -1) { e.preventDefault(); jselect.click(); } }); /* preventDefault avoid pagescroll */
- select.size = options.size || 5;
+ select.size = Math.min(select.options.length, options.size || 10);
confirm();
});
}
View

Some generated files are not rendered by default. Learn more.

Oops, something went wrong.

0 comments on commit beb671d

Please sign in to comment.