2015-05-08 4 views
2

Я пытаюсь найти, какая вкладка выбрана, и если выбрана опция «mappanel», сделайте что-нибудь.jquery tabs не распознает вкладку ui panel id

Я использую это:

function wpuf_shortcode_map($location, $post_id = null, $args = array(), $meta_key = '') { 
     global $post; 

     // compatibility 
     if ($post_id) { 
      wpuf_shortcode_map_post($location, $post_id, $args); 
      return; 
     } 



     $default = array('width' => 450, 'height' => 250, 'zoom' => 14); 
     $args = wp_parse_args($args, $default); 

     list($def_lat, $def_long) = explode(',', $location); 
     $def_lat = $def_lat ? $def_lat : 0; 
     $def_long = $def_long ? $def_long : 0; 
     ?> 

     <div class="google-map" style="margin-left:80px; height: <?php echo $args['height']; ?>px; width: <?php echo $args['width']; ?>px;" id="wpuf-map-<?php echo $meta_key . $post->ID; ?>"></div> 

     <script type="text/javascript"> 

    $('#tabs').tabs({ 
     show: function(event, ui){ 

      // check if is "mappanel" and "map" is empty 
      if (ui.panel.id == 'mappanel' && $($('#wpuf-map-<?php echo $meta_key . $post->ID; ?>')[0]).is(':empty')) 
      { 

      alert('asdasd'); 

      } 
      }      
     }); 
     </script> 
     <?php 
    } 

HTML:

<div id="tabs"> 
    <ul> 
    <li><a href="#tabs-1">תמונות</a></li> 
    <li><a class="mp" href="#mappanel">מיקום</a></li> 
    </ul> 
    <div id="tabs-1"> 
     <?php 
     $images = get_post_meta($post->ID, 'images'); 

     if ($images) { 
      foreach ($images as $attachment_id) { 
       $thumb = wp_get_attachment_image($attachment_id, 'small-thumb'); 
       $full_size = wp_get_attachment_url($attachment_id); 

       printf('<a rel="lightbox" href="%s" class="img" >%s</a>', $full_size, $thumb); 
      } 
     }else{ 

      echo '<span style="font-size:24px;color:red;">אין תמונות</span>'; 
     } 
     ?> 
    </div> 
    <div id="mappanel"> 
    <?php echo wpuf_shortcode_map('location', $post->ID); ?> 
    </div> 
</div> 

Вкладки работает идеально, но это:

if (ui.panel.id == 'mappanel' && $($('#wpuf-map-<?php echo $meta_key . $post->ID; ?>')[0]).is(':empty')) 
     { 

     alert('asdasd'); 

     } 

Я не могу заставить его работать ни в коей мере, предупреждение не работает.

, даже если я проверяю это, если (ui.panel.id == 'mappanel') его не работает.

не работает, что я делаю неправильно?

+0

Вы добавить 'ui.panel.id' в' console.log'? –

+0

нет mehtod 'show' для вкладки пользовательского интерфейса jQuery и никакого элемента' ui.panel'. Пожалуйста, прочитайте [docs] (https://api.jqueryui.com/tabs/#event-activate) – empiric

ответ

1

Вы должны использовать событие реактивировать как

$("#tabs").tabs({ 
    activate: function (e, ui) { 
     //if (ui.newPanel.is('#mappanel') && $('#wpuf-map-<?php echo $meta_key . $post->ID; ?>').eq(0).is(':empty')) { 
     if (ui.newPanel.is('#mappanel')) { 
      console.log('yes mappanel') 
      //do your stuff 
     } 
    } 
}); 

Демо: Fiddle

+0

Вы просто сохраняете мою жизнь и исправляете мои карты Google тоже, я понятия не имею, как вам благодарить :) все, что я могу do принимает ответ, СПАСИБО. –

Смежные вопросы