如何使用Jquery将对象作为参数传递给onClick函数

时间:2018-02-21 12:14:38

标签: javascript jquery parameter-passing

我有一个需要传递给函数的对象,这个函数是通过onClickonKeyUp()触发的,但是我无法使它工作。
虽然我可以传递值。

function myFunc(myObj) {

 $("<button type="button" onclick='otherFunction( $(\"#elem\").val() )'
onkeyup='otherFunction( $(\"#elem\").val() )'> CLICK IT </button>"
} 

如您所见,我有一个otherFunction,我可以将$("#elem").val()作为参数传递。但我还需要将myObj传递给它 尝试了我能想到的一切,但我无法使其发挥作用。

Obs:myObj是来自googleMaps的标记,所以我不能只传递它的属性值。我需要访问第二个函数的完整对象。    因为我需要执行以下操作:myObj.setOptions(.....)

2 个答案:

答案 0 :(得分:3)

当您使用jQuery创建按钮时,使用.on()来绑定事件处理程序。由于closure

,可以在事件处理程序中访问对象myObj
function myFunc(myObj) {
    var button = $('<button>', {
            "type": "button",
            "text": "CLICK IT"
        }).on('click keyup', function () {
            // myObj will be accessible here
            otherFunction($("#elem").val());
        });
}

好读How do JavaScript closures work?

答案 1 :(得分:1)

此代码解释了如何使用jQuery

将数据发送到处理程序
$('yourElement').click(yourData, function(eventObject){
    var thisIsYourData = eventObject.data;
})