簡體   English   中英

將值傳遞給外部函數 JQuery

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM