与['data-href']选择器绑定的JQuery事件无法正常工作

时间:2012-03-13 15:38:05

标签: jquery events jquery-selectors

我有一些代码如下

$("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。然而,这是无关紧要的 问题。问题是代码正在检测更改事件 在任何输入元素上,而不仅是具有匹配选择器的元素输入['data-href']

$()。是否存在一些我未提及的微妙问题?

3 个答案:

答案 0 :(得分:3)

可能不会引用属性名称。使用:

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

当您的属性包含特殊字符时,可以使用双斜杠来转义它:

$("element[namespace\\:attribute]")

答案 1 :(得分:2)

属性的name 在引号内(双倍或单一),value。如果您只检查是否存在属性,则需要[data-href]而不是['data-href']

答案 2 :(得分:0)

而不是这个,你可以简单地使用$(“。data \ -href”)。change(function(){})。