あなたがレンダリングされたHTMLを見れば、あなたは問題が表示されます:あなたのgetReport
呼び出しは次のようになります。
を
getReport(XYZ);
私は、あなたがその前後に引用符をしたい推測している:
return '<a href="javascript:void(0);" onclick="getReport(\''+type+'\'); return false;"></a>';
を...レンドERS:
getReport('XYZ');
Live example
やや難解な、しかし、あなたを出力onclick
属性は、HTMLソースの一部として、それはもちろん、あなたが文字エンティティを使用できることを意味するHTML属性です。だからは"
エンティティ使用することができます
return '<a href="javascript:void(0);" onclick="getReport("'+type+'"); return false;"></a>';
Live example
を私は(私にはない)ことをお勧めしますが、ではないので、私はこれを指摘し、それは本当にで何が起こっているかを覚えておくと便利ですので、 onclick
属性。これは適切なイベントハンドラ(例えば、addEventListener
/attachEvent
経由、またはインスタンス化された後は要素のonclick
プロパティへの割り当てなど)を使用することを強く推奨する理由の1つです。
それはそれを行うためのこの方法はまた、コンテンツrecord.data['name']
のに非常に敏感であることに注意することが重要です。たとえば、XYZ
の代わりにTom's
の場合はどうなるか考えてみてください。上記の最初のオプションの出力は、
getReport('Tom's');
...です。これは明らかに問題です。同様に、テキストにバックスラッシュがある場合、結果などのエスケープ文字として扱われます。 —地雷のビット。
あなたはおそらくあなたrenderLink
を変更することができればそれはそれは私がしたいものだ、実際のインスタンス化a
要素ではなく文字列を返します:
function createLink(value, meta, record)
{
var type = record.data['name']; // Grab value as of when we were called
var link = document.createElement('a');
link.href = "javascript:void(0);";
link.onclick = function() { // Or even better, addEventListener/attachEvent
getReport(type);
return false;
};
return link;
}
リンクとtype
にアクセス閉鎖を作成しますそれをテキストに戻したり、元に戻したりする必要はありません。 (閉鎖に慣れていない場合は心配しないでください。closures are not complicated。)
Live example
このHTMLをどのようにDOMに挿入し直していますか? –
record.data ['name']とは何ですか? – Shyju
extjsグリッドに戻りました – pm13