[英]Passing values into a external function JQuery
我試圖為我的所有文檔創建外部通用函數。 該函數我想使用“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,它就可以正常工作。
你的功能是一個回調; jQuery 將事件信息傳遞給您的回調。
所以當你這樣做時: $('#Search').keyup(myFunction('#Search'));
發生的事情是(myFunction()('#Search'))(e)
這不是你想要的。 e
是來自 jQuery 傳遞的key up
事件偵聽器的事件信息。
如果你想傳入 '#Search',你可以創建一個函數來丟棄這個e
並傳入你想要的內容,就像這樣。
$('#Search').keyup(function(e){
myFunction('#Search');
});
但是您的函數不是在偵聽字符串,而是在偵聽事件信息,因此您可以這樣做
$('#Search').keyup(myFuction)
您不需要像myFunction('#Search')
一樣將#Search
作為myFunction
參數傳遞。 你可以像下面一樣簡單地做到這一點。
$('#Search').keyup(myFunction);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.