2013-12-22 5 views
-5

Работаю в дурандальном проекте. У меня есть элементы span и button в html. Я хочу показать диапазон нажатием кнопки. моя проблема в том, что когда я скрываю span от html, он не может показать его из javascript. Я видел этот вопрос на вашем сайте (по ссылке change visibility of label tag using jquery), и я попробовал все ответы - все помогло мне.изменение видимости диапазона с помощью jquery

(я попытался с помощью: в HTML:

<span id="mySpan" hidden = "hidden">aaa</span> 

или:

<span id="mySpan" style= "visibility:collapse">aaa</span> 

или:

<span id="mySpan" style= "diaplay:none">aaa</span> 

в JavaScript:

$("#mySpan").show(); 

или:

$("#mySpan").css('visibility', 'visible'); 

Я попробовал все опциональной комбинации )

Примечание: Я хочу, чтобы вы знали, что, когда я не скрываю промежуток от HTML , и попробуйте использовать toggle(), hide(), show() - он работает хорошо.

пример, который не работает:

на HTML странице:

<span id="mySpan" hidden = "hidden">aaa</span> 

на яваскрипта странице:

$("#mySpan").show(); 
+1

Исправить значения 'style' сначала (' visible' должно быть 'visibility', а' diaplay' должно быть 'display'). Кроме того, 'id' следует использовать только один раз. Вместо этого замените их на 'class' и выберите их с помощью' $ (". MySpan") '. –

+0

Ваш HTML недопустим (даже если вы показываете три разных примера (поскольку 'id' должен быть уникальным), конечный тег для элемента span является обязательным, скрытые атрибуты не существуют,' display' не пишется 'diaplay', не существует свойства' visible') и не содержит содержимого или стиля, чтобы определить, отображается ли диапазон или нет. Мы также не можем видеть, как (и что более важно, когда *) вы используете JS. ** Пожалуйста, укажите * полный * сокращенный тестовый пример, который на самом деле демонстрирует проблему. ** – Quentin

+0

ho ... это только написание ошибок! вы должны сами понять, что в своем проекте я пишу правильно. а также о том же идентификаторе для некоторых элементов. Это один из элементов, я написал вам, что все они синтаксис, который я пробовал, и не совсем какая-то строка в моем коде. пожалуйста, не голосуйте, прежде чем хорошо читать вопрос. Я буду счастлив, если вы вернете мне мою репутацию. – user2783091

ответ

0

Кажется, ошибка в "diaplay"? Попробуйте изменить:

<span id="mySpan" style="diaplay:none"/>

к:

<span id="mySpan" style="display:none"/>

+0

В этом вопросе говорится, что проблема заключается в выявлении диапазона с использованием JS (т. е. что он остается скрытым). Это, несомненно, проблема с вопросом, а не с кодом, о котором спрашивает вопрос. – Quentin

12

Ваш HTML не в порядке!

Помните, что промежутки закрыты <span></span> таким образом, а не так, как вы их закрываете! Таким образом, закрываются только самозакрывающиеся элементы, такие как: input, img и т. Д.!

Попробуйте написать это:

<span id="mySpan">Some text!</span> 

CSS-бы:

#mySpan { 
    display: none; // you're using diaplay! 
} 

Теперь с помощью JQuery либо использовать это:

$('#mySpan').show() 

Или это:

$('#mySpan').css('display', 'block'); 
+0

Тогда проблема 'diaplay' меняет ее. и ваш код будет работать :) –

+0

Слушайте, вы не видите пустые объекты! В промежутке нет ничего. Вы сможете увидеть диапазон, как только вы добавите какой-нибудь контент! -_- –

5

Ну, ваш код - все неправильно.

  • Атрибут id должен использоваться только один раз на странице. Он должен быть уникальным, чтобы вы могли ссылаться на него как на одну точку документа. Вы должны изменить его на class="mySpan", а затем выбрать их, используя $(".mySpan").

  • visible:collapse недействителен CSS. Вы, вероятно, хотели использовать visibility, да?

  • diaplay:none также недействителен CSS. Возможно, опечатка display, да?

  • В новейшей спецификации HTML (обычно называемой HTML5) есть атрибут hidden. Я не уверен, знаете ли вы об этом; если вы, и вы пытаетесь использовать его, то вы должны поместить следующий код в файл CSS, так что он работает в браузерах, которые еще не реализованы его:

    *[hidden] { 
        display: none; 
    } 
    

Последующие меры:

Хорошо, вы хотите, чтобы включить или выключить интервал, нажав на кнопку. Это сделают это:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<button id="myButton">Show/hide the span</button><br> 
<span id="mySpan" style="display:none">This is a span with some text in it</span> 
<script> 
$(function() { 
    $("#myButton").click(function() { 
     $("#mySpan").toggle(); 
    }); 
}); 
</script> 
Смежные вопросы