JQuery: Изменить событие из текстового поля HTML-элемент управления отменяет событие Click с помощью кнопки HTML (живые события) - PullRequest
3 голосов
/ 24 ноября 2010

Кто-нибудь может помочь?

У меня есть событие изменения в текстовом поле и событие нажатия кнопки - все html.

Теперь, если я нажму кнопку, произойдет событие нажатия - отлично!

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

Это мой jquery, есть ли способ обойти это .. я потерялся.

    $('#myTextbox').live('change', function() {
        $.ajax({
            type: "POST",
            url: "test.aspx/GetDate",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                alert('the date is ' + msg.d);
            }
        });


    });

    $('#myButton').live('click', function() {
        alert('i am in click');

    });

EDIT

Я создал действительно простую HTML-форму и, конечно же, событие click не срабатывает, если изменение срабатывает первым - фактически в этом примере я использовал событие blur ... но оно то же самое

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>

   <script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
   <script type="text/javascript">
    $(function() {
        $('#htmlbutton').bind('click', function() {

            alert('i am in click');

        });



        $('#htmltextbox').bind('blur', function() {

            alert('in blur');

        });
    });
</script>

</head>
<body>
    <form id="form1">
    <div>
        <input id="htmlbutton" type="button" value="button" /><input id="htmltextbox" type="text" /></div>
    </form>
</body>
</html>

1 Ответ

2 голосов
/ 24 ноября 2010

Похоже, ваше предупреждение подавляет событие нажатия кнопки. Если вместо предупреждения вы измените цвет обоих элементов, вы увидите, что оба события запускаются.

То, что происходит, происходит, когда событие размытия / изменения срабатывает, как только ваша кнопка мыши нажимает на кнопку. Так как есть предупреждение, вы должны пойти и щелкнуть его, и оно никогда не зарегистрирует кнопку вверх на кнопке, что необходимо для срабатывания события щелчка.

Аякс должен был закончиться и перейти к следующему событию. Если только звонок не вернулся так быстро, что он все равно раздавил щелчок.

...