onBlur и onFocus в отдельном jQuery - PullRequest
0 голосов
/ 05 февраля 2012

Этот jQuery не работает.Я знаю, это выглядит странно.Но как мне заставить его работать?

Изменения CSS в разделе JavaScript не работают.На .blur, если в поле ничего нет, jQuery должен изменить цвет текстового поля.

На blur, если в поле ничего нет, текст должен измениться, а цвет текста долженменять.На focus, если в поле есть «Поиск внутри», текст должен измениться, а цвет текста должен измениться.

http://jsfiddle.net/7P5J8/

Нужно ли удалять встроенный JavaScript

Ответы [ 4 ]

2 голосов
/ 05 февраля 2012

вам придется удалить встроенный код, потому что он запускается до обработчиков событий.
Вы должны хранить HTML только для persenation, всю логику и JavaScript поместите в тег <script> и в файл .JS.еще лучше.

исправлено JSFiddle

JQuery

$(document).ready(function() {
    $('input#additionalsearch').focus(function() {
        if (this.value === 'Search Within') {
            $(this).css('color', '#000000').val('');
        }
    });
    $('input#additionalsearch').blur(function() {
        if (this.value === '') {
            $(this).css('color', 'red').val('Search Within');
        }
    });
});

HTML

<input id="additionalsearch" type="text" value="Search Within" />
2 голосов
/ 05 февраля 2012

попробуйте это и посмотрите, решит ли это проблему:

$("#additionalsearch").focus(function(){
if (this.value == "Search Within")
{
    this.value = "";
    $(this).css('color','#000000');
 }
});

$("#additionalsearch").blur(function(){

        if (this.value == "")
        {
            this.value = "Search Within";
            $(this).css('color','#a9a9a9');
        }
    });

http://jsfiddle.net/GhA2u/

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

Мое лучшее предположение заключается в том, что встроенные функции выполняются первыми, поэтому, когда поле пустое и вы щелкаете мышью, оно устанавливается на что-то с помощью встроенной функции. Поэтому независимо от того, что, когда вызывается jquery onblur, в поле всегда есть текст (потому что даже когда он не вызывается и вызывается onblur, встроенная функция добавляет текст до запуска jquery).

Не могли бы вы уточнить, что вы хотите, чтобы произошло? Может быть, я могу помочь.

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

Запустите код через Firebug и посмотрите, что такое свойства / атрибуты css. Inline должен переопределять настройки атрибутов javascript / атрибуты стиля CSS, если вы не используете Важно! атрибут.

...