2014-11-01 4 views
0

JS FiddleЭлементы Скрытие При нажатии документа JQuery

Вот я прячусь кнопки, если textarea пуст и пользователь щелкает за пределами textarea. Но когда textarea пуст, и пользователь нажимает на любую из кнопок под кнопками NOT Скрыть. Запустите их соответствующие функции. Может ли кто-нибудь мне помочь?

+0

Попробуйте эту скрипку: http://jsfiddle.net/n6js3yem/2/ –

ответ

0

blur Событие textarea, добавил проверку, если родительский div кнопки (.tog) завис, если да, не скрывайте это.

Обновлено Javascript:

$('textarea').focus(function() { 
    $('.tog').hide(); 
    $(this).siblings('.tog').show(); 
}).blur(function() { 
    // check if hover is on buttons 
    if ((!$(this).val().length > 0) && (!$(this).siblings('.tog').is(':hover'))) { 
     $(this).siblings('.tog').hide(); 
    } 
}); 

$('.upload').click(function() { 
    alert('choose a file to upload'); 
}); 
$('.clear').click(function() { 
    alert('cleared'); 
}); 
$('.save').click(function() { 
    alert('saved'); 
}); 

Fiddle

+1

Пожалуйста, добавьте некоторое объяснение в свой ответ. дампы кода вряд ли помогут кому угодно, кроме OP. –

+0

Я добавил комментарий «// Проверяем, что наведите курсор на кнопки». Думаю, этого достаточно. Что-нибудь предложить? –

+1

Да, явным образом упоминаю, в чем проблема, и как ваш код ниже исправляет его, комментарии в коде - дополнительная помощь. –

0

Я не совсем понимаю ваш вопрос, но мало я понимаю, что вы ищете event.stopPropagation();. Используется следующим образом:

//apply a click event on the button 
$('button').on('click',function(e){ 
//stop other event from firing when click on this 
      e.stopPropagation(); 
//do you stuff with the button..... 
}); 

Это остановит другое событие от запуска при нажатии, кроме собственного события!

+1

Для уточнений, пожалуйста, напишите в комментариях. –

+0

мое сообщение отредактировано –

0
Please Try This. 
<script> 
    var c ; 
$('textarea').focus(function() { 
    c = $(this).closest('.c'); 
    var a = $('#mytextid').val(); 
    if (a == '') { 

    } 
    else{ 
     c.children('.tog').show(); 
    } 

}).keyup(function() { 
    if(!$(this).val().length > 0){ 
    c = $(this).closest('.c'); 
    c.children('.tog').hide(); 
    } 
    else 
    { 
     c.children('.tog').show(); 
    } 
}); 
$('.upload').click(function() { 
alert('choose a file to upload'); 
}); 
$('.clear').click(function() { 
alert('cleared'); 
}); 
$('.save').click(function() { 
alert('saved'); 
}); 

</script> 

if this answer is complete your condition so please like.Thanks 
Смежные вопросы