Javascript ajax将消息传递给click事件

Javascript ajax将消息传递给click事件,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我正在使用jquery用javascript开发一个小应用程序,但我有一个小问题 我有这个函数 function cercahq(urlvalue) { $.ajax({ type: "POST", url: "data.php", data: "do=urlget&url=" + urlvalue, dataType: "html", success: function(msg) { var data = eval('('

我正在使用jquery用javascript开发一个小应用程序,但我有一个小问题

我有这个函数

function cercahq(urlvalue) {
    $.ajax({
    type: "POST",
    url: "data.php",
    data: "do=urlget&url=" + urlvalue,
    dataType: "html",
    success: function(msg) {
        var data = eval('(' + msg + ')');
        $("#searchbar").css({'background-color': '#C33'});
        // creates element
                var insertform = document.createElement('form');
        insertform.id = "insertform";
        var insertbutton = document.createElement('button');
        var insertbuttonlabel = document.createTextNode('Insert');
        insertbutton.appendChild(insertbuttonlabel);
        insertform.appendChild(insertbutton);
        $("#searchbar").append(insertform);

       $(insertbutton).click(function(event, data) {
             event.preventDefault();
             alert(data.title);
        });

        stampa(msg)
        },
    error: function()
      {
        alert("Error");
      }
});
}

此函数从php脚本获取json数据,并将其传递给函数(stampa),该函数对其求值并在页面中打印,但我需要在stampa函数外创建一个按钮,该按钮告诉我json中的值。。。 因此,在成功事件中,我插入了另一个eval以获取ajax消息并创建变量数据,该变量数据应传递给我在名为insertform的表单中创建的按钮元素


要点是:如何将“数据”变量从ajax请求成功函数中创建的元素传递到click函数?

在click函数中,通过闭包可以访问“数据”变量,无需将其传递到那里。通过将其作为参数传递,您可以使用“undefined”值将其作为闭包覆盖。因此,只需将其从参数中删除:

 $(insertbutton).click(function(event) {
         event.preventDefault();
         alert(data.title);
    });

要解析JSON,您不必
eval
它-这很危险,会从婴儿身上拿走饼干-您使用
JSON.parse
。更不用说它杀死的所有小狗了!