簡體   English   中英

如何將動態參數傳遞給jquery函數

[英]how to pass dynamic parameters to jquery function

我想將一些動態參數傳遞給jquery onClick事件。 之前,我使用過這個HTML和JavaScript:

<!-- HTML -->
<a id="link123" href="link1" onClick="javascript:func1(${param1},${param2});">123</a>
/* JavaScript */
func1(param1,param2) {
   // do something
}

參數param1param2來自后端代碼並且是動態的。 我如何得到這一點並不重要。

使用jQuery后,我有這個HTML和JS:

<a href="link123">
<input type="hidden" id="param1" value="${param1}"/>
<input type="hidden" id="param2" value="${param2}"/>
$(document).ready(function() {
  $("#link123").click(function() {
    var param1 = $("#param1")[0].value;
    var param1 = $("#param1")[0].value;
    func1(param1,param2);
  });
});

func1(param1,param2) {
  //do something
}
function func1 is there as before.

我對這個解決方案不滿意(將params作為內聯隱藏值傳遞)。 在這種情況下,將動態參數傳遞給jQuery的其他更好方法是什么?

您可以像以前一樣內聯這些參數。

  $("#link123").click(function() {
    func1(${param1}, ${param2});
  });

也就是說,您的PHP(或其他)生成具有已替換的參數值的javascript。

建議使用數據屬性。 采用:

<input data-param1="${param1}" />

接着:

$('input').click(function(){
   $(this).attr('data-param1');
});

我假設您正在嘗試將變量值從后端腳本語言傳遞給Javascript? 一種可能的方法是將它們直接輸出到javascript

<script language='JavaScript'>
//it's a good idea to have all those vars collected in a single object in order to not overpopulate the global scope
var scriptOutput = {
    param1 : ${param1},
    param2 : ${param1}
}
$(document).ready(function() {
    $("#link123").click(function() {
        func1(scriptOutput.param1,scriptOutput.param2);
    });
});
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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