[英]How to call javascript function with parameter in jquery event handler?
我被卡住了。 搜索并尝试了几个小时。
编辑:我仍然无法使它工作。 好的,我只需要输入源代码就可以清楚地说明我想要完成的任务。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
var date_fmt="yyyy-mm-dd";
var time_fmt="HH:MM";
var date_field="#id_start_0, #id_end_0"; //id refering to html input type='text'
var time_field="#id_start_1, #id_end_1"; //id refereing to html input type='text'
function clearFmt(fmt_type)
{
if($(this).val() == fmt_type) {
$(this).val("");
}
}
function putFmt(fmt_type)
{
if($(this).val() == "") {
$(this).val(fmt_type);
}
}
$(document).ready(function() {
$(date_field).attr("title",date_fmt);
$(time_field).attr("title",time_fmt);
$(date_field).click(function() {
clearFmt(date_fmt);
});
$(date_field).blur(function(){
putFmt(date_fmt);
});
$(time_field).click(function(){
clearFmt(time_fmt);
});
$(time_field).blur(function(){
putFmt(time_fmt);
});
});
</script>
救命 ?
使用jquery 绑定方法:
function myfunc(param) {
alert(param.data.key);
}
$(document).ready( function() {
$("#foo").bind('click', { key: 'value' }, myfunc);
});
另见我的jsfiddle 。
===更新===
从jquery 1.4.3开始你也可以使用:
function myfunc(param) {
alert(param.data.key);
}
$(document).ready( function() {
$("#foo").click({ key: 'value' }, myfunc);
});
另见我的第二个jsfiddle 。
===更新2 ===
每个功能都有自己的this
。 打完电话后clearFmt
在此功能this
不再是点击的元素。 我有两个类似的解决方案:
在你的函数添加一个名为例如,参数element
和替换$(this)
与element
。
function clearFmt(element, fmt_type) {
if (element.val() == fmt_type) {
element.val("");
}
}
调用函数你必须添加参数$(this)
。
$(date_field).click(function() {
clearFmt($(this), date_fmt);
});
另见我的第三个jsfiddle 。
- = -
替代:
function clearFmt(o) {
if ($(o.currentTarget).val() == o.data.fmt_type) {
$(o.currentTarget).val("");
}
}
$(date_field).click({fmt_type: date_fmt}, clearFmt);
另见我的第四个jsfiddle 。
以下应该可以在本次现场演示中看到:
function myfunc(bar) {
alert(bar);
}
$(function() {
$("#foo").click( function() {
myfunc("value");
});
});
anyFunctionName = (function()
{
function yourFunctionName1()
{
//your code here
}
function yourFunctionName2(parameter1, param2)
{
//your code here
}
return
{
yourFunctionName1:yourFunctionName1,
yourFunctionName2:yourFunctionName2
}
})();
$document.ready(function()
{
anyFunctionName.yourFunctionName1();
anyFunctionName.yourFunctionName2();
});
注意:如果你不使用'anyFuctionName'来声明任何函数,那么就不需要返回方法。 只需像yourFunctionName1()一样编写函数。
在$ document.ready section参数中没有问题。 你只需将你的功能名称放在这里。 如果您使用'anyFuctionName'功能,则必须遵循以上格式。
人们正在使这个变得复杂,只需像在Javascript中那样直接调用
MYFUNC( “值”);
function myfunc(e) {
alert(e.data.bar); //this is set to "value"
}
$("#foo").click({bar: "value"}, myfunc);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.