jQuery click (fn) не будет работать с элементом ввода - PullRequest
1 голос
/ 26 марта 2009

Я хочу использовать jQuery для обнаружения щелчков на связке переключателей. Всем им был назначен класс css, foobar, для их обнаружения. Легко, правда? Тем не менее, этот код не работает:

$("input.foobar").click(function ()
{ 
    alert(this.id);
}
);

Что не так с кодом выше?

Действительно ли this.id возвращает идентификатор текущего переключателя?

РЕДАКТИРОВАТЬ: HTML на странице действительно не работает (не проверяет), так что, возможно, это проблема ...

РЕДАКТИРОВАТЬ 2: HTML испорчен за спасение. Придется оставить это и исправить обходной путь. Да простят меня боги HTML!

Ответы [ 4 ]

3 голосов
/ 26 марта 2009
$("input.foobar").change(function () {
    alert(this.id);
});
0 голосов
/ 26 марта 2009

В вашем примере кода нет ничего плохого, и он работает, как и ожидалось:

<input type="radio" class="foobar" id="x1" />
<input type="radio" class="foobar" id="x2" />
<input type="radio" class="foobar" id="x3" />

Нажатие на радио показывает окно предупреждения с идентификатором радио. Вы действительно нажали на поле, а не на какой-либо текст или элемент надписи?

0 голосов
/ 26 марта 2009

Попробуйте

$("input.foobar").change(function ()

вместо .click(function ()

0 голосов
/ 26 марта 2009

По сути, в вашем коде нет ничего плохого, он должен работать. Но, возможно, html поможет понять, в чем проблема.

И чтобы ответить на ваш второй вопрос, да, 'this.id' является допустимым JavaScript.

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