[英]Pass Parameter to Custom jQuery Function
这是我到目前为止所拥有的:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#weight").change(onSelectChange);
});
function onSelectChange(){
var selected = $('#weight').val();
$.post("tship.php", {weight: selected},
function(data){
$("#ship").html(data.ret_html);
}, "json");
}
</script>
</head>
<body>
<select id="weight">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<br />
<div id="ship">
</div>
</body>
</html>
我想更改它,以便onSelectChange接受单个参数。 我还需要能够为其他事件调用该函数-不仅在选择框值更改时。 这是我的尝试,不起作用:
<script type="text/javascript">
$(document).ready(function() {
$("#weight").change(onSelectChange($('#weight').val()));
});
function onSelectChange(parm){
$.post("tship.php", {weight: parm},
function(data){
$("#ship").html(data.ret_password);
}, "json");
}
</script>
尝试这个:
$("#weight").change(function(){
onSelectChange($(this).val());
});
您应该添加另一个功能:
$("#weight").change(function(){
onSelectChange($('#weight').val());
}); //close the anonymous function
请注意,在原始代码中,您已将onSelectChange
作为参考传递,而没有启动它onSelectChange()
。 照原样编写代码,只需启动函数一次即可,而不必绑定它。
您正在另一个函数中调用一个函数,因此我认为,如果将代码修改为以下代码,则它应该可以正常工作(假设onSelectChange()
函数可以正常工作:
$(document).ready(function() {
$("#weight").change(
function() {
$(this).onSelectChange($('#weight').val()));
}
);
});
您无法做到这一点,onSelectChange被jQuery的change函数调用,因此它选择要传递的参数。
但是,在您的情况下,这很简单,jQuery会将“ this”绑定到您已将该事件处理程序应用于的项目,因此您可以使用以下代码在onSelectChange中引用该值:
$(this).val();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.