ページ内に 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コードには、jqueryからこの呼び出しを受け取り、何かをするスプリングコントローラーがあります。
最初に編集アクションを続けてクリックしたときはすべて問題ありませんが、アプリケーションでしばらく作業した後、単一の編集アクションが数回呼び出されるため、clickedit 関数が 2 回、3 回、または 4 回実行され、Java コードが実行されることがわかります。当たる回数は同じです。
この問題について何か考えはありますか???
アップデート:
onCellSelect を使い始めました。しかし、私には問題があります。単一のセルに、次のように 3 つの異なるアクションを配置できます。
var actions = 'editedOK ? '<div><span class="edit1" idperson="' + items[i].id + '" >EDITOK1 </span><span class="edit2" idperson="' + items[i].id + '">EDITOK2</span></div>' : '<div><span class="editnook1" idperson="' + items[i].id + '">EDITNOOK1</span></div>';
アクション = true の場合、同じセルに「EDITOK1 EDITOK2」が表示され、アクション = false の場合、このセルに「EDITNOOK1」が表示されます
このアクションのすべてが、クリックしたときに機能をさまざまな動作に関連付けています。
onCellSelect を使用すると、EDITOK1 を押したとき、EDITOK2 を押したとき、EDITNOOK1 を押したときを判別できます。さらに重要なことは、EDITOK1 と EDITOK2 を決定することです。