我尝试为我的所有文档创建外部常规功能。该函数我想用“this”方法在函数内部工作,“this”值来自差异按钮。但是这段代码对我不起作用。如何解决它。
jQuery代码:
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 );
}
使用jQuery将值发送到外部函数
$(document).ready(function(){
$('#Search').keyup(myFunction('#Search'));
});
HTML代码:
<form name="inputform">
<input class="Search" type="text" autofocus name="searchbox" id="Search" style="width:800px; height:200px;">
</form>
如果我直接放置文本框ID,它工作正常。
答案 0 :(得分:1)
您的功能是回电; jQuery将事件信息传递给您的回调。
所以当你这样做时:$('#Search').keyup(myFunction('#Search'));
发生了什么(myFunction()('#Search'))(e)
,这不是你想要的。 e
是来自jQuery传递的key up
事件侦听器的事件信息。
如果你想传入#搜索&#39;你可以创建一个抛弃这个e
并传递你想要的内容的函数,就像这样。
$('#Search').keyup(function(e){
myFunction('#Search');
});
但是你的功能是不是在听一个字符串,它会监听事件信息,所以你可以这样做
$('#Search').keyup(myFuction)
答案 1 :(得分:0)
您不需要将#Search
作为myFunction
的参数传递,例如myFunction('#Search')
。你可以像下面这样做。
$('#Search').keyup(myFunction);