2012-02-01 3 views
-1

Это мой сценарий. Скрипт работает, когда я нажимаю, но он не скрывается, когда я нажимаю на него.выпадение не скрывается, когда я нахожусь снаружи

$(document).ready(function() { 
    //Translate(); //caling Language Translater function 
    $("#translate_image").attr('href', base_url) 

    $("#select_lang").click(function() { 
     $("#lang_visible").attr('style', 'visibility: visible'); 
    }) 
}) 

Вот мой HTML:

<li> 
    <div class="clsCurrent_Lan "> 
     <a class="clsHead_Link_Bg" href="#" id="select_lang"> 
      <span>Select Language</span> 
     </a> 
    </div> 
    <ul id="lang_visible" > 
     <?php foreach($language_drops as $lang){?> 
      <li> 
       <a href="<?php echo admin_url('home/ch_language/' . 
       $lang->language_code)?>" 
       id="<?php echo $lang->language_code?>"> 
       <?php echo ucfirst($lang->language_name);?></a> 
      </li> 
     <?php }?> 
    </ul> 
</li> 
+0

Пожалуйста, отредактируйте ваше сообщение. Вам нужна пустая строка перед кодом. –

+0

может указать, почему это не работает –

+0

что должно быть скрыто? '# Lang_visible'? На что вы нажимаете «снаружи», что вы хотите скрыть элемент? – pete

ответ

1
$(document).mouseup(function(e) { 
    if ($(e.target).parents('#select_lang').length === 0) { 
    $("#lang_visible").attr('style', 'visibility: hidden'); 
    } 
}); 

Попробуйте это. Добавьте его в свой готовый документ. В основном щелчок в любом месте, кроме селектора #select_lang, приведет к скрытию видимости #lang_visible.

+0

большое спасибо. Работает. –

0

Так, что-то вроде этого тогда?

$(document).ready(function() { 
    //Translate(); //calling Language Translater function 
    $("#translate_image").attr('href',base_url); 
    $("#select_lang").click(function() { 
     $("#lang_visible").attr('style','visibility: visible').click(function (e) { 
      $(this).hide(); //hides the #lang_visible element 
      //$(this).parent().hide(); //to hide the <li> containing the #lang_visible element 
      e.preventDefault(); 
      return false; 
     }); 
    }); 
}); 
+0

не работает –

+0

Не могли бы вы разместить некоторую разметку html? Это может помочь нам определить проблему. – pete

+0

это мой html-код. –

1

Я думаю, вы идете по этому неправильному пути, вроде как изобретать колесо. Таким образом, поведение, которое вы хотите, должно иметь элемент управления, где пользователь может выбрать язык с нескольких разных языков? Вместо того, чтобы пытаться опрокинуть свои собственные, почему бы просто не использовать элемент «Выбрать»? Вы можете использовать php для первоначальной настройки «Выбрать», а затем использовать javascript/jQuery для ответа на изменения состояния.

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