Как скрыть div после нажатия на событие javaScript

0

Это мои коды (JavaScript)...

<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('#track1').click(function() {
            $('#wrap').append('<embed id="embed_player" src="alert.mp3" autostart="true" hidden="true"></embed>');
            $("#show").slideDown(2000);
        });
        $('#track2').click(function() {
            $('#wrap').append('<embed id="embed_player" src="alert.mp3" autostart="true" hidden="true"></embed>');
            $("#show1").fadeIn(3000);
        });
        $('#track3').click(function() {
            $('#wrap').append('<embed id="embed_player" src="alert.mp3" autostart="true" hidden="true"></embed>');
            $("#show1").fadeOut(3000);
            $("#show").slideUp(3000);
        });

    });

    function quick_confirm() {
        $('#wrap').append('<embed id="embed_player"     src="alert.mp3" autostart="true" hidden="true"></embed>');
        var agree = confirm("Are you sure you wish to continue?");
        if (agree) {
            $("#show1").fadeOut(3000);
            $("#show").slideUp(3000);
            return true;
        }
        else
            return false;
    }

    function valid() {
        var name = document.getElementById("name").value;
        var pass = document.getElementById("pass").value;
        error = '';
        if (name == "" && pass == "")
            error = "\nEnter both fields";
        else if (name == '')
            error = "Enter your name";
        else if (pass == '')
            error = "\nEnter your password";


        if (error != "") {
            document.getElementById("error").innerHTML = error + "<button id='showtime'>HIDE</button>";
            $('#wrap').append('<embed id="embed_player" src="alert.mp3" autostart="true" hidden="true"></embed>');
            $("#error").slideDown(3000);
            return false;
        }
        $('#showtime').click(function() {
            $('#wrap').append('<embed id="embed_player" src="alert.mp3" autostart="true" hidden="true"></embed>');
            $("#error").toggle; //**help me solve the problem..
        });
    }
</script>

<div id='error'></div>
<form method='post' action="testsound.php" onsubmit='return valid()' >
    <strong>Name</strong><input type='text' id='name' name='name'>
    <strong>password</strong><input type='password' id='pass' name='pass'>
    <input type='submit' value='Login'>
</form>

Пожалуйста, помогите мне как можно скорее, вам нужна помощь в скрытии элемента div... После отправки формы ошибка div отобразится, но я не могу скрыть div после нажатия кнопки hide, которая имеет идентификатор showtime.

Теги:

2 ответа

3
Лучший ответ

Убедитесь, что вы действительно вызываете функцию toggle с круглыми скобками, например:

$("#error").toggle();

Или, возможно, вместо этого используйте hide:

$("#error").hide();

Также обратите внимание, что в вашей valid функции, если есть ошибка, вы return false, прежде чем привязывать событие click к элементу #showtime. Существует несколько способов решить эту проблему, в зависимости от того, как организована ваша страница (ее трудно определить только из приведенного здесь кода).

  • Привяжите еще до того, как вы вернетесь:

    $('#showtime').click(function() {
        $('#wrap').append('<embed id="embed_player" src="alert.mp3" autostart="true" hidden="true"></embed>');
        $("#error").toggle(); // or hide()
    });
    if (error != "") {
        document.getElementById("error").innerHTML = error + "<button id='showtime'>HIDE</button>";
        $('#wrap').append('<embed id="embed_player" src="alert.mp3" autostart="true" hidden="true"></embed>');
        $("#error").slideDown(3000);
        return false;
    }
    
  • Привязать событие в обработчике document.ready:

    $(document).ready(function() {
        ...
        $('#showtime').click(function() {
            $('#wrap').append('<embed id="embed_player" src="alert.mp3" autostart="true" hidden="true"></embed>');
            $("#error").toggle(); // or hide()
        });
    }
    
  • 0
    Ваш код не работает
  • 0
    @ user3053885 это работает!
Показать ещё 4 комментария
0

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

$('#error').click(function() {
    $(this).hide(3000);
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню