Slider with dynamic addition / removal of slides does not work - Uncaught TypeError: Cannot read property 'offsetLeft' of undefined. An error is somewhere here:
_slide: function() { this.animate = 1; this.$slider.css('overflow', 'hidden'); this.showAllTabs(); this.$wrapper.css('left', this.$tabs[this.current_position].offsetLeft*-1); // смещение текущего слайда в px this.arrowAction(); var self = this; var tmt = setTimeout(this.hideTabs.bind(self), 600); }, Full jsfiddle code
UPD html
<div id="multiSelection" class="tabs-slider"> <ul class="tabs-slider-wrapper nav nav-tabs js_order_service_tabs"> <? $active = 'active'; ?> <? foreach($this->getServicesTabsFromRequestServiceInfo() as $tab_id => $tab_title): ?> <li class="js_order_request_service_tab_<?=$tab_id;?> js_order_request_service_tab <?=$active;?>" tabid="order_service_<?=$tab_id;?>"> <a href="#order_service_<?=$tab_id;?>" data-toggle="tab"><?=$tab_title;?> <i class="icon icon-remove js_remove_service_tab" data-order-service-tab-id="<?=$tab_id;?>"></i> </a> </li> <? if($active) $active = ''; ?> <? endforeach; ?> <li id="TabAdded" class="dropdown js_order_add_service_tab"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> <i class="icon icon-plus"></i> Добавить услугу<b class="caret"></b> </a> <ul class="dropdown-menu order-add-service-dropdown-menu"> <? foreach($this->services as $code => $title): ?> <li><a data-service-id="<?=$code;?>" href="#"><?=$title;?></a></li> <? endforeach; ?> </ul> </li> <div class="clear"></div> </ul> <div class="border-bottom"></div> <div class="tabs-slider-nav"> <div id="moveTabsLeft" class="roller roller-wrap-style-left slider-previous"> <i class="icon icon-chevron-left icon-position-left "></i> </div> <div id="moveTabsRight" class="roller roller-wrap-style-right slider- next"> <i class="icon icon-chevron-right icon-position-right"></i> </div> </div> </div> <div class="request-service-tab-content tab-content"> <? $active = 'active'; ?> <? foreach($this->getServicesTabsContentFromRequestServiceInfo() as $tab_id => $tab_content): ?> <div class="order-service-tab tab-pane <?=$active;?>" id="order_service_<?=$tab_id;?>"><?=$tab_content;?></div> <? if($active) $active = ''; ?> <? endforeach; ?>
this.$tabs[this.current_position]-undefined- Grundy