2013-06-18 29 views
0

我有一个telerik网格,当用户双击某一行时,我正在使用它来向服务器发送一篇文章。它似乎工作正常,直到我在代码中发出警报,并注意到一些奇怪的行为。当我第一次双击一行时,警报会出现两次,并继续显示两次单击的次数。我的意思是 - 第一次出现两次,第二次出现4次,第三次出现6次,然后继续。以下是我用来调用网格的脚本。Telerik Grid双击显示点击次数的两倍

function DisplayStudent(e) { 
    if (IsStudentGradeAvailable == "True") { 
     $('tr', this).live('dblclick', function() { 
      var row = e.row; 
      var StudentId= row.cells[0].innerHTML; 
      var StudentGrade= row.cells[1].innerHTML; 
      var data = { "StudentId= ": StudentId= , "StudentGrade": StudentGrade }; 
      var url = '@Url.Action("Student", "StudentGrade")'; 
      $.ajax({ 
       url: url, 
       type: 'post', 
       dataType: 'text', 
       data: data, 
       success: function (data) { 
        alert("Success"); 
       }, 
       error: function (error) { 
        alert("Error"); 
       } 

      }); 
     }); 
    } 
} 

回答

0

实时附加事件处理程序。你想要一个事件处理程序,所以你应该只调用一次live()方法。考虑到你的代码,这意味着DisplayStudent()只能被调用一次。

如果DisplayStudent()被调用n次,您将附加n个事件处理程序,每个处理程序都会在您单击时发出警报。

+0

我看到......另一个词,我应该关闭弹出窗口,并重新打开,如果他们想要看到更多的学生或处理它不同的方式。 –