如何将Javascript单击函数应用于没有类的元素
How to apply Javascript click function to elements without class?
目前我使用:
$(':submit').click(function(event) {
event.preventDefault(); //Stop the browser from submitting the form.
$.ajax( {
//Handle forms in ajax
});
});
处理网站上的所有表单,因为 95% 的表单都是在 ajax 中处理的。这使我不必将其应用于类,然后必须将该类添加到每个表单中。
我现在的问题是需要在没有 ajax 的情况下处理 2 个表单才能正常工作。那么,我将如何将相同的函数应用于除 2 之外的所有提交输入的特定类,而无需在函数中硬编码这些特定元素?这可能吗?有这种类型的否定选择器吗?
我选择了这种方法,因为大多数表单都使用 ajax 提交,所以除非您确定没有替代方案,否则请不要建议针对类。
您可以在选择器中使用:not()
:
$(':submit:not(.specialclass)').click(...)
您也可以将类放在以下形式中:
$('form:not(.specialclass)').submit(function(event) {
...
});
如果它是你不想处理的元素上的一个特定类,你可以使用 .not()
将它们从 jQuery 对象中删除:
$(':submit').not(".yourClass").click(function(event) {
event.preventDefault(); //Stop the browser from submitting the form.
$.ajax( {
//Handle forms in ajax
});
});
如果您希望避免使用具有任何类名的任何表单对象,则可以执行以下操作:
$(':submit').click(function(event) {
if (this.className) {
return; // do nothing and let default action happen if there's a class name
}
event.preventDefault(); //Stop the browser from submitting the form.
$.ajax( {
//Handle forms in ajax
});
});
$(':submit:not([data-standard-sumbit])')...
<form>
<button type="submit" data-standard-submit>Submit</button>
</form>
但是,通常最好绑定到表单submit
事件,而不是提交按钮click
事件。
因此:
$('form:not([data-standard-submit])').submit(...)
<form data-standard-submit></form>
相关文章:
- 将自定义javascript函数应用于iframe元素
- CSS: jQuery:将右边距应用于 li 元素,除了每个第 4 个子元素(仅适用于 display:block 的元
- jQuery将“x”号图像元素应用于SRC和类
- 将 css 样式应用于 javascript 调用中的 :after 伪元素
- 如何将CSS应用于Javascript添加的元素
- 您能否通过JavaScript将媒体查询特定样式应用于HTML元素
- 可以/应该将多个自定义指令应用于Angular中的同一元素
- 聚合物:将动画应用于dom重复模板中的dom元素
- 将点击/悬停函数应用于JS中的多个元素类
- 将jQuery应用于ajax加载的HTML元素
- 当将.click()应用于li元素时,应该使用什么选择器
- 将jquery插件应用于dom元素
- 将显示功能应用于ajax成功创建的元素
- 如何将工具提示应用于d3嵌套层(流图)中的元素
- 将焦点样式事件应用于UL标记元素
- 将jQuery动画应用于Angular JS在加载时动态加载的视图中的元素
- 有没有一种更优雅的方法将 css 应用于“除了这个元素之外的所有元素”
- 如何用.not改变选择器来应用于dom元素
- 全局样式未应用于Chrome 36中Polymer元素中的Shadow DOM子项
- 将数据元素应用于“数据表”单元格