Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Select

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
saber135791
Отправлено: 21 Апреля, 2012 - 19:28:18
Post Id


Гость


Покинул форум
Сообщений всего: 120
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




Здравствуйте, данный код преобразует все select'ы, подскажите как можно узнать id select'а по которому кликнули?
CODE (htmlphp):
скопировать код в буфер обмена
  1.                         $selects = $idealform.find('select');
  2.  
  3.                         var Idealselect = function (select) {
  4.  
  5.                                 var that = this;
  6.  
  7.                                 // Build markup
  8.                                 that.build = function () {
  9.                                         var $options,
  10.                                         $selected,
  11.                                         _options = '',
  12.                                         output;
  13.                                         $options = select.find('option');
  14.                                         $selected = $options.filter(':selected');
  15.                                         $options.each(function () {
  16.                                                 _options += '<li><a href="#">' + $(this).text() + '</a></li>';
  17.                                         });
  18.                                         output =
  19.                                                 '<ul class="idealselect">' +
  20.                                                 '<li>' +
  21.                                                 '<a href="#" class="idealselect-title">' + $selected.text() + '<span><small></small></span></a>' +
  22.                                                 '<ul>' + _options + '</ul>' +
  23.                                                 '</li>' +
  24.                                                 '</ul>';
  25.                                         return output;
  26.                                 };
  27.  
  28.                                 that.el = $(that.build()); // Wrap in jquery object
  29.                                 that.title = that.el.find('.idealselect-title');
  30.                                 that.menu = that.el.find('ul');
  31.                                 that.items = that.menu.find('a');
  32.  
  33.                                 // Events
  34.                                 that.events = {
  35.                                         open : function () {
  36.                                                 that.el.addClass('open');
  37.                                                 that.menu.show();
  38.                                         },
  39.                                         close : function () {
  40.                                                 that.el.removeClass('open');
  41.                                                 that.menu.scrollTop(0);
  42.                                                 that.menu.hide();
  43.                                         },
  44.                                         change : function () {
  45.                                                 var idx = $(this).parent().index();
  46.                                                 that.title.text($(this).text()).append('<span><small></small></span>');
  47.                                                 select.find('option').eq(idx).attr('selected', 'selected');
  48.                                                 select.trigger('change');
  49.                                                 that.events.close();
  50.                                         }
  51.                                 };
  52.  
  53.                                 // Initializate
  54.                                 that.init = function () {
  55.  
  56.                                         // Calculate width & height and insert idealselect
  57.                                         var $idealselect = that.el.insertAfter(select),
  58.                                         $items = $idealselect.find('ul a'),
  59.                                         $menu = $idealselect.find('ul'),
  60.                                         setWidth = function () {
  61.                                                 $menu.width($menu.outerWidth());
  62.                                                 $idealselect.width($menu.outerWidth());
  63.                                         };
  64.                                         if ($items.length > 10) {
  65.                                                 setWidth();
  66.                                                 $menu.height($items.outerHeight() * 10);
  67.                                         } else {
  68.                                                 setWidth();
  69.                                                 $menu.css('overflow-y', 'hidden');
  70.                                         }
  71.  
  72.                                         that.menu.hide();
  73.  
  74.                                         // Bind events
  75.                                         that.el.find('a').click(function (e) {
  76.                                                 e.preventDefault();
  77.                                         });
  78.                                         that.el.on('mouseleave', that.events.close);
  79.                                         that.title.on('click', that.events.open);
  80.                                         that.items.on('blur', this.parentNode.id);
  81.                                         that.menu.on('mouseleave', that.events.close);
  82.                                         that.items.on('click', that.events.change);
  83.                                 };
  84.                         };
  85.  
  86.                         // Create & Insert all idealselects
  87.                         $selects.each(function () {
  88.                                 var idealselect = new Idealselect($(this));
  89.                                 idealselect.init();
  90.                         });


Пример select'а:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <select id="newselid" name="newsel"></select>


Как получить этот newselid в выше написанном коде?
 
 Top
LIME
Отправлено: 21 Апреля, 2012 - 19:30:12
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. $(this).attr('id');
 
 Top
saber135791
Отправлено: 21 Апреля, 2012 - 20:51:36
Post Id


Гость


Покинул форум
Сообщений всего: 120
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




Не работает, пишет undefined!
 
 Top
tuareg
Отправлено: 21 Апреля, 2012 - 21:07:56
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




saber135791 пишет:
Не работает, пишет undefined!

Если один select
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $selects.attr('id');
  3.  

если много
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var idSelect=[];
  3. $selects.each(function(i){
  4.  idSelect.push(this.id);
  5. });
  6.  
 
 Top
LIME
Отправлено: 21 Апреля, 2012 - 21:26:36
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. $(this).parent.attr('id');
а так?
 
 Top
saber135791
Отправлено: 21 Апреля, 2012 - 21:36:55
Post Id


Гость


Покинул форум
Сообщений всего: 120
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




tuareg пишет:
если много

В переменной idSelect находятся id всех select'ов, написанных через запятую, а как сделать чтобы был id select'а на который я нажал?

LIME пишет:
а так?

Вообще перестал работать...
 
 Top
tuareg
Отправлено: 21 Апреля, 2012 - 22:02:41
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




А есть где посмотреть в живую?
Можно повесить что-то типа
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('select').change(function(){
  3.  alert(this.id)
  4. })
  5.  

Т.е я так понял, что плагин генерирует событие change на замененном select-е.
 
 Top
saber135791
Отправлено: 21 Апреля, 2012 - 22:18:09
Post Id


Гость


Покинул форум
Сообщений всего: 120
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




tuareg пишет:
Можно повесить что-то типа

Теперь работает, большое спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB