2013-03-13 3 views
0

У меня есть кнопка на страницу, которая я хочу, чтобы скрыть/отобразить поле под ним:нажатия кнопок не работает JavaScript

<button id="post1-new-comment-button" type="button">Click</button> 
<input id="post1-new-comment" name="comment[body]" size="50" type="text" /> 

со следующим CSS

#post1-new-comment { 
    display: none; 
} 

и JavaScript

$(function() { 
    return $("#post1-new-comment-button").click(function() { 
     return $("#post1-new-comment").val("").toggle(); 
    }); 
}); 

Однако ничего не происходит, когда нажимается кнопка. Что я здесь делаю неправильно? На jsfiddle здесь: http://jsfiddle.net/Z5hqZ/

+3

Для начала, вы не включая JQuery на вашем jsfiddle ... – DarkAjax

+0

Не для начинающих. Для ответа. Включая jQuery 1.9.1, скрипт работает нормально. – AlienWebguy

+0

Это было действительно глупо. Реальная проблема закончилась тем, что я использовал CoffeeScript для генерации javaScript, на который я не смотрел, пока не показалось, что он не работает на jsfiddle. – robertjlooby

ответ

0

Не забудьте включить jQuery когда вы хотите использовать его, так как это не на вашей скрипке, и ваш HTML не так, на скрипке у вас есть:

<button id="post1-new-comment-button" type="button"> 

Оно должно быть:

<button id="post1-new-comment-button"></button> 

В противном случае вход будет внутри кнопки. На вашем примере, вы не закрывая <button> тег, также нет необходимости добавлять type="button" и вам не нужно return на вашем JavaScript либо ...

Обновленный рабочий пример: http://jsfiddle.net/darkajax/VKGdv/

+0

Правда, но это не является причиной проблемы. Ваш комментарий выше был. – AlienWebguy

+0

@AlienWebguy правильно, но с неправильным html на примере скрипта, который имеет op, вход внутри кнопки, и я предполагаю, что это не предназначенный вывод ... – DarkAjax

+0

Правильно, но моя проблема была в том, что JS не работает , что не имеет ничего общего с ошибками синтаксиса DOM. – AlienWebguy

0

Попробуйте это:

$(function() { 
    $("#post1-new-comment-button").click(function() { 
     $("#post1-new-comment").val("").toggle(); 
    }); 
}); 
0

Для скрытия/unhide -

$(function() { 
    $("#post1-new-comment-button").click(function() { 
     $("#post1-new-comment").toggle(); 
    }); 
}); 
0

Попробуйте это. и не забудьте установить библиотеку в jsfiddle на JQuery, и выполнить скрипт на DOM готового

$(function() { 
$("#post1-new-comment-button").click(function() { 
    $("#post1-new-comment").toggle(); 
}); 

});

Здесь работает ссылка: http://jsfiddle.net/Z5hqZ/2/

и Дон, забудьте закрывающий тег для кнопки

0

На самом деле все выше/ниже:

  1. Вам нужно включить JQuery
  2. Ваша кнопка требуется закрывающий тег (и предпочтительно некоторый текст для отображения на кнопке между ними)
  3. Используйте только те, мычание:

    $(document).ready(function(){ 
        $("#post1-new-comment-button").click(function() { 
        $("#post1-new-comment").toggle(); 
        }); 
    }); 
    
1

Вашей скрипка не работает, потому что вы не имеете JQuery в нем. Я обновил его и удалил возврат.

http://jsfiddle.net/Z5hqZ/5/

$(function() { 
    $("#post1-new-comment-button").click(function() { 
    $("#post1-new-comment").val("").toggle(); 
    }); 
}); 
Смежные вопросы