Привязка события JQuery с селектором ['data-href'] не работает - PullRequest
1 голос
/ 13 марта 2012

У меня есть код, как показано ниже

$("html").on("change", "input['data-href']", function() {
  var href, obj, params;
  obj = $(this);
  href = obj.attr('data-href');
  params = {};
  params[obj.attr('data-param')] = obj.val();
  return $.post(href, params);
});

Предполагается, что я могу использовать элементы формы где угодно и иметь их автоматически отправить их значение через ajax по указанному URL. Однако это не имеет значения к проблеме. Проблема в том, что код обнаруживает событие изменения на любом элементе input , а не только на элементах с соответствующим селектором input ['data-href']

Есть ли небольшая проблема с $ (). На , к которой я не обращаюсь?

Ответы [ 3 ]

3 голосов
/ 13 марта 2012

Имена атрибутов не могут быть в кавычках. Использование:

$("html").on("change", "input[data-href]", function() {

Когда ваш атрибут содержит специальные символы, для его экранирования может использоваться двойная косая черта:

$("element[namespace\\:attribute]")
2 голосов
/ 13 марта 2012

name атрибута не идет в кавычках (двойных или одинарных), value делает. Если вы проверяете только наличие атрибута, вам нужно [data-href] вместо ['data-href'].

0 голосов
/ 13 марта 2012

Вместо этого вы можете просто использовать $ (". Data \ -href"). Change (function () {}).

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