0

我的页面中有一个 jqgrid 组件,网格的行是使用值和操作创建的,例如:

colum:  name     adresss      job               edit

row 1:  jorge    my adress    architect        [value]

我用数据库中的几行填充网格,并且 aech 行在列编辑到个人页面中有一个值,用于编辑操作。

这个值有这个结构:

<div><span class="edit" idperson="' + items[i].id + '">Edit</span></div>

在同一个脚本中我把这个:

$('.edit').live('click', this.clickedit);

功能是:

clickedit: function(){

    $.ajax('person/personedit.htm', {
        cache: false,
        type : 'POST',
        data : { idperson: $(this).attr('idperson')},
        success : function(response){
            //some actions.....
        }
    });





},

在我的 java 代码中,我有一个 spring 控制器,它从 jquery 接收这个调用并做一些事情。

我第一次连续单击编辑操作一切正常,但是在使用应用程序一段时间后,我看到一个编辑操作被多次调用,因此 clickedit 函数执行 2、3 或 4 次,而我的 java 代码被击中相同的次数。

关于这个问题的任何想法???

更新:

我现在开始使用 onCellSelect。但我有一个问题。在一个单元格中,我可以通过这种方式进行 3 个不同的操作:

var actions = 'editedOK ? '<div><span class="edit1" idperson="' + items[i].id + '" >EDITOK1&nbsp;&nbsp;</span><span class="edit2" idperson="' + items[i].id + '">EDITOK2</span></div>' : '<div><span class="editnook1" idperson="' + items[i].id + '">EDITNOOK1</span></div>'; 

如果 actions = true 我在同一单元格“EDITOK1 EDITOK2”中看到,如果 actions = false 我在此单元格“EDITOK1”中看到

当我点击它时,每个动作都有将功能与不同的行为相关联。

如果我使用 onCellSelect,则可以确定何时点击 EDITOK1、何时点击 EDITOK2 以及何时点击 EDITNOOK1。更重要的是在 EDITOK1 和 EDITOK2 之间进行确定。

4

1 回答 1

1

我想你打电话$('.edit').live('click', this.clickedit); 多次。这就是为什么this.clickedithandler 会被多次调用的原因。

我建议你不要使用任何显式的this.clickedit回调绑定。取而代之的是,您可以使用beforeSelectRowor onCellSelect。有关相应的代码示例,请参阅答案这个

于 2013-07-23T05:46:58.610 回答