簡體   English   中英

如何在jquery事件處理程序中使用參數調用javascript函數?

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

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