Как связать эту функцию с фокусом ввода - PullRequest
3 голосов
/ 13 июля 2011

У меня есть следующая упрощенная функция.Реальное использование удалено.Итак, onfocus я ожидаю оповещения о значении текстового поля.

Я бы хотел отделить определение функции от использования.

new function ($)
{
    $.fn.setFocus = function ()
    {
        alert($(this).val());
    }
} (jQuery);

Моя текущая попытка не работает:

$('input[type=text]').focus(setFocus);

Как мне заставить это работать?спасибо.

Ответы [ 4 ]

2 голосов
/ 18 июля 2011

setFocus, вероятно, не определено. Вы должны обратиться к самой функции, в этом случае $.fn.setFocus.

$('input[type=text]').focus($.fn.setFocus);
0 голосов
/ 19 июля 2011

Ваш код выглядит так, как будто он пытается расширить jQuery.

Может быть, вы хотите

new function ($)
{
    $.fn.setFocus = function ()
    {
        return this.focus(function(){
           alert($(this).val());
        });
    }
} (jQuery);

и называть его так

$('input[type=text]').setFocus();
0 голосов
/ 19 июля 2011

Что вы, вероятно, хотите, это:

function setFocus() {
    alert($(this).val());
}

$("input[type='text']").focus(setFocus);

То, что вы сделали, присвоив setFocus $ .fn, создали плагин, который будет оповещать содержимое выбранного элемента:

$("#foo").setFocus();

Технически сработает предоставление $ .fn.setFocus для вызова фокуса jQuery, но у него есть другие эффекты, которые вам, скорее всего, не нужны.

0 голосов
/ 13 июля 2011
    $("input[type='text']").focus(function(){
alert($(this).val());
});

Селекторы атрибутов jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...