2012-01-24 11 views
2

動的に追加され、ページから非表示になるリンク要素があります。ダイナミックに生成されたリンクのテキストを変更する

これらは、サードパーティのtelerikコントロールによって生成されます。

テキストの名前を変更したいのですが、残念ながら唯一の方法はjqueryを使用することです。

編集リンクが表示されたときにそれをキャッチするルール(セレクタ)を生成しました。しかし、最初のページの読み込みでは、編集リンクは表示されません。ユーザーが何かをクリックすると、これらのリンクが作成されます。ユーザーが何か他のものをクリックすると、これらは非表示になり、他のリンクが表示されます。これらは、テキストを変更するために必要なリンクです。

セレクタに一致する要素がページに追加されるたびにボタンテキストが更新されるようにjqueryコードを書き込むにはどうすればよいですか?

ありがとうございました!

Edit0

私は、彼らがどのように生成されるかを制御することはできません。

上部に親、下部に2つのグリッドがあります。最初は子供が隠されています。上部グリッドで行が選択され、下部グリッドにはその選択項目が表示されます。これは、これらのリンクが(AJAXを介して非同期的に)ページに追加されるため、DOMにはない(子グリッド内の各子アイテムのリンクを編集する)。

希望がより合理的です。

EDIT1

//catches the links 
$("#CustomClass .t-button.t-grid-edit").text("Awesome text instead of Edit"); 
+0

"ユーザーが何かをクリックすると、これらのリンクが作成されます。" - これの背後にあるコードを管理していますか?または、追加されるコンテンツやその追加方法を制御できませんか? – mrtsherman

+0

私は混乱しています。このセレクタを持つこの要素はいつページに追加されますか? – Trevor

+0

この質問は少し難解です。表示するコードはありますか?リンクをキャッチするようなもの。とにかく、リンクが生成されたと言うと、ページがロードされたときに生成されるのでしょうか、AJAXのような非同期呼び出しによって生成されますか? –

答えて

2

あなたはjQueryの1.7以降を使用している場合、あなたはあなたの選択基準を満たし、現在および将来のDOM要素にイベントハンドラを割り当てることonを使用する必要があります。

以前のバージョンのjQueryを使用している場合は、delegateを使用してください。

どのように生成されるかを制御することはできませんが、コンテンツをページに追加することはできますか?そうであれば、カスタムイベント(おそらく)とon/delegateを使用してグリッドに追加する新しいアイテムを処理できます。このことができますかどうかわからない、再びhttp://jsfiddle.net/dhoerster/xLvYE/

-

はここでこれを実証しフィドルです。私はこれを正しく理解していなければ削除します。うまくいけば、これは役に立ちます。

+0

'on'はイベントに関連付けられます。 jQueryには「要素が追加されました」というイベントはありません。さて、 'load'がありますが、これはimg、linkなどのsrc属性を持つ要素に対してのみです。 – mrtsherman

+0

"ユーザーが何かをクリックすると、これらのリンクが作成されます。ユーザーが何か他のものをクリックすると、これらは非表示になり、他のリンクが表示されます。あなたにバインドできるクリックイベントが少なくとも2つあるようです。 – skybondsor

+0

@skybondsorそれはそういうことです。私はコードがどのように見えるのか正確には分からないので、簡単な例をまとめています。それが正しい方向であれば、質問者はそれを実行することができると思います。 –

関連する問題