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

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

的元素

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

最佳答案

属性名称不能加引号。使用:

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

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

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

关于JQuery 事件绑定(bind)与 ['data-href'] 选择器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9687218/

相关文章:

javascript - Jquery 在 ul 中选择具有跨度的 div

javascript - 如何从 next() 获取输入值

jquery - Bootstrap 模态按钮单击 jquery

javascript - JS : alert when clicking on a tag

jquery - 下拉菜单在单击时将选项下拉

javascript - jQuery DataTables - 行点击不在第一页以外的页面上注册

javascript - 将事件监听器添加到 future 的项目(没有 jQuery)

javascript - 如何获取 $(this) 选择器的 child ?

javascript - 全部完成后递归 "Fetch API"回调

javascript - 在 jquery 中 append 复选框元素后单击不起作用