我有一些代码如下
$("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']
$()。是否存在一些我未提及的微妙问题?
答案 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(){})。