java - 当我使用 jquery 在 jqgrid 中执行操作时,有几个调用

标签 java jquery jqgrid

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

colum:  name     adresss      job               edit

row 1:  jorge    my adress    architect        [value]

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

该值具有以下结构:

<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 Controller ,它从 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 我在此单元格“EDITNOOK1”中看到

当我点击它时,每个操作都将函数与不同的行为相关联。

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

最佳答案

我想您调用了$('.edit').live('click', this.clickedit);多次。这就是为什么 this.clickedit 处理程序会被多次调用的原因。

我建议您不要使用 this.clickedit 回调的任何显式绑定(bind)。相反,您可以使用 beforeSelectRowonCellSelect。请参阅the answerthis one相应的代码示例。

关于java - 当我使用 jquery 在 jqgrid 中执行操作时,有几个调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17802083/

相关文章:

jquery - JQUERY 中用于加载 JQGRID 的选项卡

html - 宽度和最小宽度的使用

java - 将 TreeSet 元素的顺序更改为自定义输出

java - 在Java中,将数组写入文件时,只写入最后一行

javascript - jQuery 折叠选项卡(如果选择相同)

javascript - 如何在coffeescript中将两个jquery帖子合并为一个?

java - 如何在 SWT TableViewer 中装饰列图像和文本?

java - 具有分布式值的自定义哈希表

jquery - 通过循环 div 动态地为 child 添加类

javascript - jqGrid的columnChooser第一次不显示效果