Javascript 将值传递到外部函数JQuery
我试图为我的所有文档创建外部通用函数。这个函数我想用“this”方法来处理函数的内部过程,“this”值来自不同的按钮。但是这个代码对我不起作用。如何解决这个问题 jQuery代码:Javascript 将值传递到外部函数JQuery,javascript,jquery,html,Javascript,Jquery,Html,我试图为我的所有文档创建外部通用函数。这个函数我想用“this”方法来处理函数的内部过程,“this”值来自不同的按钮。但是这个代码对我不起作用。如何解决这个问题 jQuery代码: function myFunction(e){ var inp = $(this).val(), target = e.target, position = target.selectionStart; inp = inp.replace(/a/g, "A"); inp = inp.rep
function myFunction(e){
var inp = $(this).val(), target = e.target, position = target.selectionStart;
inp = inp.replace(/a/g, "A");
inp = inp.replace(/i/g, "I");
inp = inp.replace(/u/g, "U");
inp = inp.replace(/e/g, "E");
$(this).val(inp);
$(this).get(0).setSelectionRange(position, position );
}
<form name="inputform">
<input class="Search" type="text" autofocus name="searchbox" id="Search" style="width:800px; height:200px;">
</form>
使用jQuery将值发送到外部函数
$(document).ready(function(){
$('#Search').keyup(myFunction('#Search'));
});
HTML代码:
function myFunction(e){
var inp = $(this).val(), target = e.target, position = target.selectionStart;
inp = inp.replace(/a/g, "A");
inp = inp.replace(/i/g, "I");
inp = inp.replace(/u/g, "U");
inp = inp.replace(/e/g, "E");
$(this).val(inp);
$(this).get(0).setSelectionRange(position, position );
}
<form name="inputform">
<input class="Search" type="text" autofocus name="searchbox" id="Search" style="width:800px; height:200px;">
</form>
如果我直接输入文本框id,它工作正常 您的功能是回调;jQuery将事件信息传递给您的回调 因此,当您这样做时:
$('Search').keyup(myFunction('Search'))代码>
现在发生的是(myFunction()('#Search'))(e)
,这不是您想要的。e
是jQuery传递的键向上
事件侦听器中的事件信息
如果您想传入“#Search”,您可以创建一个函数,该函数丢弃这个e
,并传递您想要的内容,如下所示
$('#Search').keyup(function(e){
myFunction('#Search');
});
但函数并不是在侦听字符串,而是在侦听事件信息,以便您可以执行以下操作
$('#Search').keyup(myFuction)
您不需要像myFunction('#Search')
一样将#Search
作为myFunction
的参数传递。你可以像下面这样做
$('#Search').keyup(myFunction);
在将'#Search'
绑定到keyup时,为什么要将其传递到myFunction('#Search')
?您需要传入一些配置吗?不需要。这个外部函数是通用的。因此,我使用了更多的文本框。所以,若我改为另一个文本框,我希望将该文本框的ID传递给函数一侧的进程。这就是为什么我也使用“this”作为通用的.But$('Search').keyup(function(){myFunction('Search');});这也不起作用。它上面写着:$(“#搜索”).keyup(myFuction)