我有一些如下代码
$("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/