簡體   English   中英

將初始化對象傳遞給javascript函數

[英]Pass initialized object to javascript function

我有以下初始化對象,我想通過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

試試這個

$(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);
}

工作jsfiddle

做你想做的更合適的方法是將對象存儲在元素的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);
}

演示 (向控制台問好,溝渠alert() )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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