0

我当前的 javascript/ajax 请求有问题。我正在尝试从.append我的代码中打开一个 Jquery 对话框,如下所示:

for (var i in rows)
{
  var row = rows[i];          
  var id = row[0];
  var NewEdit = row[0];
  var PreviousEdit = row[1];
  var FunctionName = row[2];
  var FunctionID = row[2]
  function ShowInfo() 
  {
    dialog('Original: <br>'+PreviousEdit+'<br><br> New: <br>' +NewEdit);
  }
  $('#RecentEdits').append("<br>Page: <a href=Page.php?ID="+FunctionID+">"+FunctionName+"</a> - <a href='#' OnClick='ShowInfo()'>Info</a>");
} 

我只粘贴了相关代码,如果需要,我可以发布整个函数。

我知道一个事实,我的变量是正确设置的,因为它们被打印出来了。

如何打开一个对话框,显示 Javascript 函数内部的更多信息?


解决方案:

因为没有正确的答复。我使用了 OQJF 的示例并制作了这个:

    <script>
function ShowInfo(a,b) 
      {
       alert('Original: \n'+unescape(a)+'\n\n New: \n'+unescape(b));
      };
    </script>
   <script>
//window.setInterval(function()
//{
  $(function () 
  {
    $.ajax({                                      
        url: 'RecentUpdates.php', data: "", dataType: 'json',  success: function(rows)        
        {
        $('#RecentEdits').empty();

            for (var i in rows)
            {
                var row = rows[i];          
                var id = row[0];
                var NewEdit = row[0];
                var PreviousEdit = row[1];
                var FunctionName = row[2];
                var FunctionID = row[3];
                $('#RecentEdits')
                .append("<br>Page: <a href='Page.php?ID="+FunctionID+"'>"+FunctionName+"</a> - ");
                $('#RecentEdits').append("<input type='button' onClick=ShowInfo('"+escape(PreviousEdit)+"','"+escape(NewEdit)+"'); value='Show'>");
            } 
        } 
    });       
  });
// }, 1000);
  </script>

这使我能够从我的 Javascript 打印输出中访问该功能。

我的 html 周围的引号引起了我的麻烦,所以我决定做两个附加。这似乎工作得很好!

4

1 回答 1

0

虽然首先我认为您应该在循环之外设置函数 showInfo 并为其设置 2 个参数。下面是我没有测试的示例代码,但它应该几乎是这样的。

 function ShowInfo(orginVal,newVal) 
      {
        var msg =('Original: <br>'+orginVal+'<br><br> New: <br>' +newVal);
        $(<div>msg</div>).appendTo('body).dialog();//maybe you can add some options for dialog
      }

下面的部分似乎在另一个函数中。

    for (var i in rows)
    {
      var row = rows[i];          
      var id = row[0];
      var NewEdit = row[0];
      var PreviousEdit = row[1];
      var FunctionName = row[2];
      var FunctionID = row[2]

      $('#RecentEdits').append("<br>Page: <a href=Page.php?ID="+FunctionID+">"+FunctionName+"</a> - <a href='#' OnClick='ShowInfo(/*add your 2 parameters here*/)'>Info</a>");
    } s
于 2013-03-08T02:30:32.510 回答