如何通过属性“onclick”将jQuery函数.one()应用于元素
How to apply jQuery function .one() to element through attribute 'onclick'
我想在单击输入字段时清除输入字段,但仅在第一次单击时清除输入字段。使用 jQuery,你可以像这样实现它:将以下代码片段放在文档中的任何位置(假设 id= inputf
的元素已经加载(:
$('#inputf').one("click", function() {
$(this).val("");
});
如上面的代码片段所示,输入字段必须具有值为 inputf
的 id
属性。
但是有没有办法将该代码段移动到输入字段的 onclick
属性,例如
<input type="text" onclick="$(this)....val('')" />
?看起来我不能使用函数.one()
,因为该函数需要一个包含一个或多个 JavaScript 事件类型的字符串。但我只希望每次调用.one()
时都执行它,而不指定一个或多个事件类型。
自从您要求以来,我才发布此内容,我不提倡内联处理程序。
<input type="text" onclick="this.onclick = null; this.value = ''; " />
http://jsfiddle.net/aUmNK/
<input type="text" onclick="if(flagCount === 0){this.value='';flagCount++;}" />
将var flagCount = 0
声明为 head
中 script
标记中的全局变量。
如果要对所有文本输入字段执行此操作,可以执行以下操作:
$("input[type=text]").each(function(){
$(this).one("click", function() {$(this).val = "";});
});
。或者,您可以优化选择器以获取特定div中的每个输入字段,例如:
$("#divId input[type=text]")
你不需要jQuery来执行像one
这样的事件。只需执行以下操作:
<input onclick="function(event) { /* do something */ this.onclick = function(){}; }" />
您的函数将仅在第一次执行,然后将一个新的 void 函数附加到 onclick 事件回调。
你可以编写自己的简单jQuery插件:
(function( $ ) {
$.fn.clearOnce = function() {
this.one("click", function() {
$(this).val("");
});
};
})( jQuery );
在此之后,您可以:
<input type="text" onclick="$(this).clearOnce();" />
在 3 分钟内写完,未经测试;-(
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- JQuery合并了keyup和focusout两个函数
- ES6构造函数返回基类的实例
- 无论首先单击哪个复选框,都需要调用函数1次-.one()的一些变体
- Jquery .one() 函数不会阻止表单输入期间的多次点击事件
- 使用 jQuery one() 函数作为黑客来防止触发多个点击事件
- 对不同元素上的不同事件使用相同函数的jQuery.one()
- 如何通过属性“onclick”将jQuery函数.one()应用于元素
- 对具有相同类的元素应用Jquery .one函数
- .one() jQuery函数会自动触发多次
- 在调用.one()函数之后,如何启用事件处理程序
- jQuery的one()函数会杀死一切
- 如何防止自定义事件被重复触发 - 或者我可以“重置”jQuery .one()函数
- 传递给jQuery的one()方法的函数仅在第一次触发事件时执行