2014-01-15 5 views
0

скрипку - http://jsbin.com/udumibO/1/editПоказать конкретные DIVs если Выбранные DIVs скрыты

Если эти дивы скрыты (они скрыты от обработчика событий .hide()), то я хочу два других дивы, чтобы показать.

Я пробовал следующее на document.ready, но это не работает, и я понятия не имею, почему.

Вот код.

if ($(".select-properties, .div-properties, .image-properties, .table-properties").is(':hidden')) { 
    $(".starter-properties, .canvas-properties").show(); 
} 

Любая помощь с благодарностью.

+0

Возможно, это имеет смысл: «Проверьте текущий согласованный набор элементов на объект селектора, элемента или jQuery и верните true, если ** по крайней мере один из этих элементов соответствует данным аргументам». - http://api.jquery.com/is/ – elclanrs

+0

Ожидаете ли вы, что этот код будет работать **, когда ** другой 'div' будет скрыт? Почему бы вам просто не называть '$ (". Starter-properties, .canvas-properties "). Show();' сразу после вызова 'hide()'? – jammykam

ответ

0

мне удалось добиться эффекта я хотел с помощью следующей функции.

$(".select-tool, .div-tool, .image-tool, .table-tool, .edit-tool").on("mouseup touchend", function() { 
    if ($(".select-properties, .div-properties, .image-properties, .table-properties").is(':hidden')) { 
    $(".starter-properties, .canvas-properties").show(); 
    $(".select-properties, .div-properties, .image-properties, .table-properties").hide(); 
    } 
}); 

Вот скрипка - http://jsbin.com/udumibO/3/edit

Я уверен, что есть аккуратнее способ, чтобы написать это, но это лучшее, что я мог сделать, чтобы достичь эффекта я хотел.

0

Вы можете использовать

$(".target").toggle(function() { 
    // your remaining action. something written here 
}); 
1

Используйте это:

if ($('.select-properties, .div-properties, .image-properties, .table-properties').css('display') == 'none') { 
    $(".starter-properties, .canvas-properties").show(); 
} 
0

Попробуйте эту ссылку Это может быть полезно для вас. http://jsfiddle.net/rahulsahu/eveKU/

HTML:

<div id="first-div">first div</div> 
<button id="first">hide above div</button><br/> 
<button id="second">show another div when first div is hidden otherwise don't show</button> 
<div id="second-div" style="display:none;">Second div</div> 

JQuery:

$("button#first").click(function(){ 
    $("#first-div").hide(); 

}); 
$("button#second").click(function(){ 

if($('#first-div').is(':visible')) { 
    // do nothing 
    alert("first div is not hidden"); 
    } 
    else{ 
     $("#second-div").show(); 
    } 
}); 
0

Хорошо, здесь много кода. : P

Отлично, поэтому я просто хочу создать систему вкладок и изначально вы хотите скрыть все содержимое вкладки и показать что-то еще по умолчанию.

Ну, вот что делает то же, что и ваш код, а также решает вашу проблему.

$("span", ".nav").click(function(){ 
     var target = $("." + $(this).attr("class").replace(/tool$/g, "properties")); 

     target.show().siblings().hide(); 
     $(this).addClass("active").siblings().removeClass("active"); 
    }); 

    $(".select-properties, .div-properties, .image-properties, .table-properties").hide(); 

jsfiddle: http://jsfiddle.net/ashishanexpert/c7eJh/2/

JSFiddle код хорошо прокомментирован.

Дайте мне знать, если вы хотите добавить или задать вопрос. Удачи!

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