JQueryを介して多くの要素でjavascript変換を実行する私の通常の方法:
<div class="cow"></div>
<script> $(".cow").doStuff() </script>
ただし、この操作は脆弱で脆弱です。ページがすべて1回だけロードされることを前提として機能します。Ajaxと部分的なリロードを開始すると、この種のグローバル変換は完全に機能しなくなります。また、サーバーがサーバー側のデータに基づいて各要素に対して異なる変換を実行する場合も機能しません。
非要素の実際のonload
イベントbody
は機能しないことを私は知っています。1つの解決策は、すべての要素にID /クラスを指定し、JQueryを使用してそれらをすぐに参照することです。
<div id="cow"></div>
<script> $("#cow").doStuff() </script>
しかし、それは本当に厄介です。IDを指定するすべての要素がグローバルI名前空間を汚染するため、私はそれがまったく好きではありません。私は現在、要素に事実上衝突不可能なIDを与えています
<div id="id877gN0icYtxi"></div>
<script> $("#id877gN0icYtxi").doStuff() </script>
ランダムなbase64番号に基づいています。ただし、これはすべて巨大なハックのように見えます。要素onclick
sやonmousedown
sなどをそれぞれの属性を使用して非常に簡単に指定し、関数を呼び出して指定されたを変換することができthis
ます。
今、私はonload
うまくいかないことを知っています。ただし、その機能をシミュレートする方法はありますか?this
具体的には、タグにIDを割り当てることなく、を使用して特定のタグを参照するJavaScriptコードを実行できるようにしたいと考えています。
編集:本質的に私は次のようなものが欲しい
<input onclick="alert('moo')"/>
ただし、oncreateの場合。input
私の現在のユースケースは、またはtextarea
をテキストで埋めることであり、現在、次のことを行っています。
<input id="id877gN0icYtxi"/>
<script>$("#id877gN0icYtxi").val(...)</script>
ここで、...
は入力ボックスごとに異なるため、「グローバル」jquery変換を使用して簡単に実行することはできません。一方、作成時にのvalue
or属性を設定することはできません。これは、である可能性があり、わかりません。私は次のようなことをしたい:input
textarea
<input onload="$(this).val(...)"/>
これは機能しませんが、機能することを望みます。繰り返しますが、はサーバーによって設定され、ページ上のタグ...
ごとに異なります。input
EDIT2:
私は、JQueryが通常、同じ方法で多くの要素に対してドキュメント全体の変換を行うために使用される時間をよく知っています。問題は、この場合、各要素が、サーバーによって指示された、その要素に固有の方法で変換されていることです。特定のユースケースでは、各フィールドの内容が事前に入力されて$().val()
おり、当然、すべてのフィールドに異なる内容が入力されます。各要素に一意のIDを指定し、JQueryを使用してグローバル検索を実行してその要素を再度見つけることは、非常に回りくどい方法のように思えます。もちろん、ページの一部のAjaxingを開始すると中断します。
EDIT3:
要するに、私は書くことができるようになりたいです
<div onload="javascriptFunction(this)"/>
が作成さjavascriptFunction()
れたときに実行さ<div>
れ(最初のページにあるか、ajaxを介して挿入されているかに関係なく)<div>
、パラメーターとして渡されます。divがクリックされたときにパラメーターとして実行するのと同じように、同じことをonclick
実行しjavascriptFunction()
たいのですが、が作成されたとき/DOMに挿入されたときです。<div>
<div>
<head>
これを実現するために、で任意の量のセットアップスクリプトを受け入れるつもりです。上記の理由により、の後にタグを追加したり、またはに<script>
タグを追加したりするつもりはありません。これらの制限を考えると、非ボディ要素の属性をシミュレートするために実行できる最善の方法は何ですか?<div>
class
id
<div>
onload