与 ['data-href'] 选择器绑定的 JQuery 事件不起作用



我有一些类似的代码

$("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']

上的$().是否存在一些我没有解决的微妙问题?

属性名称不能被引用。用途:
$("html").on("change", "input[data-href]", function() {

当属性包含特殊字符时,可以使用双斜杠对其进行转义:

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

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

您可以简单地使用$(".data\-href").change(function(){}).

最新更新