2011-08-02 15 views
0

上のonclickイベントを追加し、OnClickImageがグローバル関数ではないので、私は、は、私はjQueryのに非常に新しいですIMG

function Clients(guid) 
{ 
var that = this; 

this.guid = guid; 
this.container = $("#Clients_" + that.guid); 

this.LoadClients = function() { 
var ids = that.container.find("#clients-tbl").getDataIDs(); 

    for (var i = 0; i < ids.length; i++) { 
     var row = that.container.find("#clients-tbl").getRowData(ids[i]); 

     var imgView = "<img src='../../Content/Images/vcard.png' style='cursor:pointer;' alt='Open case' onclick=OnClickImage(" + ids[i] + "); />"; 

     that.container.find("#clients-tbl").setRowData(ids[i], { CasesButtons: imgView }); 
    } 
} 


this.CreateClientsGrid = function() { 
    var clientsGrid = that.container.find("#widget-clients-tbl").jqGrid({ 
..... 
ondblClickRow:function(rowid) 
{ 
    --- 
} 
    loadComplete: function() { 
      that.LoadClients(); 


     } 
} 
this.OnClickImage=function(idClient){ 
    .... 
} 

this.Init = function() { 
    that.CreateClientsGrid(); 
}; 

this.Init(); 
} 

問題はonclickのであるいくつかの問題を抱えています。 どのようにしてOnClickImage関数を使用できますか?

答えて

0

clickイベントにさまざまな方法でバインドできます。たとえば、the answerの道をたどることができます。ちなみに、それはgetRowDatasetRowDataのようにはるかに迅速に動作します。さらに、that.container.find("#clients-tbl")の結果をループのの外側に保存しての外側に保存し、その変数をループ内で使用する必要があります。 JavaScriptは動的言語であり、毎回の操作でもids.lengthが毎回実行されます。

もう1つの方法は、clickイベントバインディングを使用せずに、イベントを使用します。アプローチを説明し、対応するデモを提供するthe answerを参照してください。

+0

onCellSelectedイベントでは、私はondblClickRowに問題があります。 – cashmere

+0

@cashmere: 'ondblClickRow'でどんな問題がありますか? 'onCellSelected'の代わりに' beforeSelectRow'を使うことができます。 'beforeSelectRow'から' true'を返すことを忘れないでください。問題を解決したい場合は、問題をより明確に説明する必要があります。コードの転記が最適です。 – Oleg

関連する問題