我有以下初始化对象,我希望通过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;
}
答案 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);
}
答案 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()
)。