[英]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
}
參數param1
和param2
來自后端代碼並且是動態的。 我如何得到這一點並不重要。
使用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.