将初始化对象传递给javascript函数

时间:2013-09-14 18:53:39

标签: javascript jquery html function object

我有以下初始化对象,我希望通过onclick函数传递这个对象,这有可能实现吗?

var nameObject = { Name: "Stack", lastName:"Exchange" }

这是我的代码:

document ready我有链接并附加 html 元素的onclick函数。

HTML:

<div id="test"></div>

使用Javascript:

$(document).ready(function () {
  var nameObject = { Name: "Stack", lastName:"Exchange" };

  $("#test").append('<a href="#"'
  +'onclick="sendObj(**I want to pass "nameObject" into this function)">'
  +'sendObject</a>');
)};

function sendObj(**receive the object**)
{
  //nameObject.Name+" "nameObject.lastName;
}

Jsfiddle

2 个答案:

答案 0 :(得分:4)

试试这个

$(document).ready(function () {
  var nameObject = { Name: "Stack", lastName:"Exchange" };

  $("#test").append('<a href="#" data-caller>sendObject</a>');

  $("#test").on("click", "[data-caller]", function() {
     sendObj(nameObject);
  });
)};

function sendObj(nameObject)
{
  alert(nameObject.Name+" "+nameObject.lastName);
}

working jsfiddle

答案 1 :(得分:4)

执行所需操作的更合适的方法是将对象存储在元素的data对象中,这是jQuery为此目的指定的。

然后,分配一个click处理程序,该处理程序将使用存储的数据调用所需的函数。

$(document).ready(function () {
    var name = { Name: "Stack", lastName:"Exchange" };
    var a =  $('<a href="#">sendObject</a>').data('name', name).on('click',
       function(e){
           sendObj($(this).data('name'));
       });

    $("#test").append(a);
 });

function sendObj(e)
{
    console.log(e);
}

Demo(向控制台问好,放弃alert())。