2015-03-09 2 views
0

Итак, у меня есть следующий код jQuery, который перемещает список до замены другого списка при нажатии кнопки. Затем текст кнопки изменяется на «dev-языки», чтобы пользователь знал, чтобы снова нажать кнопку, чтобы вернуться к исходному списку. Когда пользователь снова нажимает кнопку, чтобы вернуться к этому первоначальному списку, как я могу вернуть кнопку к исходному тексту?Сменить кнопку на исходное имя после нажатия

$(document).ready(function() { 

    $(".projects").on("click", function(){ 

     $(".devList").slideToggle(); 
     $(".devButton").slideToggle(); 
     $(".projects").text("Development Languages"); 
    }); 
}); 
+2

Um ... используя '.text()' снова? Или вы спрашиваете, как узнать, меняется ли текущий клик на новое значение или на старое значение (если вы перемещаете другие элементы с помощью метода переключения)? – nnnnnn

+0

Проверьте текущее значение и соответствующим образом измените его. Здесь нет волшебства. – j08691

+0

Сохраните это просто, замените «$ («. Projects »). Text (« Языки разработки »);' с '$ (". Projects "). Text() ==" Языки разработки "? текст («Что-то еще»): текст («Проекты»). текст («Языки разработки»); ' – NewToJS

ответ

0

Вы можете проверить, что текущий текст и изменить его в зависимости от состояния:

if ($(".projects").text() === "Development Languages") { 
    $(".projects").text("New Text"); 
} else { 
    $(".projects").text("Development Languages"); 
} 
1

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

var currentText = $(this).text(); 
if (currentText === "Development Languages") 
    $(this).text("Whatever the old label was"); 
else 
    $(this).text("Development Languages"); 

Однако, вы не можете иметь жестко кодировать различные этикетки в вашем JavaScript. Таким образом, вы могли бы поставить его в разметке, как это:

<button class="projects" data-alternate-label="Development Languages">Click me</button> 

... а затем более общий JavaScript, который проверяет атрибут data-, чтобы увидеть, что при нажатии на альтернативный ярлык, сохранение предыдущего текста для использования после следующий щелчок:

var $this = $(this), 
     alternateLabel = $this.data("alternate-label"); 
    $this.data("alternate-label", $this.text()); 
    $this.text(alternateLabel); 

Таким образом, вы можете иметь несколько кнопок с ассоциированными списками на той же странице, и по-прежнему нужно только обработчик один щелчок, чтобы управлять ими, как показано здесь: http://jsfiddle.net/c5584bgr/2/

+0

Это вам большое спасибо! Я просто изучаю jQuery и не знаю, как использовать условные обозначения! Это имеет смысл теперь, когда я смотрю на него и применяю его к моему коду! Огромное спасибо! – Exziled