размытие не срабатывает на теге p - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь использовать размытие на td, p безуспешно. Документация Jquery говорит, что

"Первоначально это событие было применимо только к элементам формы, таким как ввод. В последних браузерах домен события был расширен, чтобы включить всетипы элементов. "

Таким образом, он должен запускаться на тегах p / td.Вот мой пример кода

<p>Test 2
</p>
<p>Test 1
</p>
<script>
    $(document).ready(function () {
        $("p").blur(function () {
            alert('blur');
        });

    });
</script>

Обратите внимание, однако, что, если я пытаюсь вызвать размытие программно, оно срабатывает.

$("p").blur();

Я предполагаю, что когда я нажимаю на первую pщелкните где-нибудь еще, и размытие должно сработать ... Я что-то здесь упускаю?

Спасибо

Ответы [ 2 ]

7 голосов
/ 23 февраля 2012

Размытие - это противоположное событие фокусировки. Тег p не может быть сфокусирован, если у него не установлен tabindex, поэтому ваши теги p не будут размыты.

Добавьте атрибут tabindex к вашим тегам p, и после вкладки или щелчка будет запущено размытие, например,

<p tabindex="10">test 1</p>
<p tabindex="11">test 2</p>

событие фокуса: http://jsfiddle.net/b98Bs/

Событие размытия: http://jsfiddle.net/b98Bs/1/

(Если вы нажмете p, не забудьте щелкнуть от него после, чтобы запустить событие)

UPDATE:

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

Если вы хотите, чтобы tabindex следовал за порядком элементов в документе, установите их оба на tabindex = "0": http://jsfiddle.net/b98Bs/2/

0 голосов
/ 23 февраля 2012

Событие Blur не работает с такими элементами, как p.Обычно используется с вводимым текстом.Если вы сфокусировались, вы можете вызвать событие 'focus', когда фокус выключен, это событие размытия.Вы можете использовать событие размытия там.Событие размытия говорит о потере фокуса.

В приведенном ниже примере, когда фокус отсутствует, цвет входного текста меняется на красный.Когда вы фокусируете, цвет желтый.

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){ 
$("#blurr").blur(function(){
  $(this).css("color","yellow");
}); 
$("#blurr").focus(function(){
    $("#blurr").css("color","red");
  });   
});
</script>
</head>
<body>
<input type="text" id="blurr" value="click Here"/>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...