Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Custom select (https://javascript.ru/forum/dom-window/48075-custom-select.html)

evan 18.06.2014 19:39

Custom select
 
Написал плагин кастомизации select. При клике по селекту меняется стрелка (вверх - вниз) Он работает, но только в chrome. В FF при снятии фокуса нужно отщелкнуться 2 раза, вместо одного. Если ето знает в чем ошибка, подскажите пожалуйста.
Привожу код и ссылку http://store2.a78.org/resize

var indexClick, selectors, setNull, totalSelects;
    var previous;
    selectors = $('select');
    totalSelects = selectors.length;
    indexClick = [];
    setNull = function() {
      var j;
      j = 0;
      while (j < totalSelects) {
        indexClick[j] = 0;
        j++;
      }
    };
    setNull();
    selectors.blur(function(e) {
    	var  select, span, target, targetIndex;
    	select = $(e.target);
    	target = select.parent();
     	targetIndex = target.index();
      	span = select.siblings('span');
    	indexClick[targetIndex] = 0;
        span.css({
          background: "url('img/select.png') no-repeat 95%, url('img/select-fon.jpg')"
        });
    	})
    selectors.click(function(e) {
    	e.stopPropagation();
      var k, select, span, target, targetIndex, title;
      select = $(e.target);
      target = select.parent();
      targetIndex = target.index();
      span = select.siblings('span');
      $(select).change(function(){
      	title = $('option:selected', select).val();
      	span.text(title);
      })
      
      if (indexClick[targetIndex] === 0) {
      	
        indexClick[targetIndex] = 1;
        previous = select;
        span.css({
          background: "url('img/select-up.png') no-repeat 95%, url('img/select-fon.jpg')"
        });
      } else {
        indexClick[targetIndex] = 0;
        span.css({
          background: "url('img/select.png') no-repeat 95%, url('img/select-fon.jpg')"
        });
      }
     	
    });

рони 18.06.2014 20:15

evan,
не многовато функций навесится при каждом клике -- строка 35

рони 18.06.2014 20:22

evan,
когда условие в строке 30 будет false ?

evan 20.06.2014 10:40

Цитата:

не многовато функций навесится при каждом клике -- строка 35
А как вы прочтете выбранное значение option?

evan 20.06.2014 10:42

Цитата:

Сообщение от рони (Сообщение 317167)
evan,
когда условие в строке 30 будет false ?

После условмя следовало вывод в консоль. Это было тестовая проверка. Я убрал его

рони 20.06.2014 11:27

Цитата:

Сообщение от evan
А как вы прочтете выбранное значение option?

навесить change отдельно от click

можно узнать секрет как вы перекроите спаном селект в ie при выборе значений?

evan 20.06.2014 11:43

Цитата:

навесить change отдельно от click
Спасибо за совет

рони 20.06.2014 11:46

evan,
и неплохобы спан сам подбирал себе ширину согласно ширине селекта под которым находится
это так мысли вслух


Часовой пояс GMT +3, время: 16:26.