使用onclick事件将变量传递给动态创建按钮的函数

时间:2012-10-25 15:43:55

标签: jquery

请找到以下代码。当我试图将变量tmp_lnk从onclick事件传递给函数时,它会抛出一个错误,即tmp_lnk未定义。如何将变量传递给函数?

if(fig_name[1]==img_name)
{
var tmp_lnk = "Supplementary Notes for Images/"+"6H-"+img_name/img_name+".pdf"
$("#notes1").append('<div><a onclick="On_Click(tmp_lnk)" id="closebutton">NOTES</a></div>')
break;
}}

function On_Click(tmp_link)
{
    window.open("tmp_lnk");
}

}

3 个答案:

答案 0 :(得分:1)

$("#notes1").append('<div><a onclick="On_Click(' + tmp_lnk+ ')" id="closebutton">NOTES</a></div>')

function On_Click(tmp_lnk)
{
    window.open(tmp_lnk);
}

答案 1 :(得分:0)

或者,这是怎么回事:

$("#notes1").append('<div><a onclick="On_Click('+tmp_lnk+')" id="closebutton">NOTES</a></div>')

这会使变量内容写在方法调用上,从而解决您的问题。

答案 2 :(得分:0)

因为你声明了tmp_lnk,如果将它设为全局或声明了if

的一面
var tmp_lnk
if(fig_name[1]==img_name)
{
tmp_lnk = "Supplementary Notes for Images/"+"6H-"+img_name/img_name+".pdf"
$("#notes1").append('<div><a onclick="On_Click(tmp_lnk)" id="closebutton">NOTES</a></div>')
break;
}}

function On_Click(tmp_link)
{
    window.open("tmp_lnk");
}
}

好读

JavaScript Variable Scope