まず、関連性の高い提案されたすべての質問を読み、問題を解決したものは何も見つかりませんでした。第二に、もしこれがすでにどこかで解決されていれば、私はそれを十分に検索しませんでした。最後に、問題について。 :DJavascriptを使用して広告申込情報を追加するとき、HTML要素IDとJavascript参照をどのように処理しますか?
「広告申込情報」があるページがあります。 'line item'は、HTML入力の行を構成するHTML要素の束です(例:Pieces、Description、Weight、Unit Rate、Total Rateなどの列を想像してください)。広告申込情報のHTMLコントロールの1つは、実際にはJavascriptを発行するカスタムサーバーコントロールです。とりわけ、JavascriptがニュースまでそのようなタイプXのオブジェクト:今
var whatever = new X(constructor values);
を、ユーザーが[追加]ボタンでラインアイテムを追加することができます。現在、広告申込情報を構成するHTMLのクリーンコピーを複製するだけです。これにより、Javascriptコードもクローンされ、すべての広告申込情報にvar whatever = new X(constructor values);
が表示されるようになりました。これは、すべて同じJavaScript変数(つまり、whatever
)を参照する複数の行が存在するという問題を提起します。
これはもちろん、私はwhatever
をそれぞれ別のインスタンスとして参照する必要があります。同じインスタンスではありません。このような状況に対処する方法があるのだろうかと思います。どのようにカスタムサーバーコントロールを使用しますが、各行が発行するJavaScriptをまだ参照していますか?または、この問題を回避する方法で新しい広告申込情報を作成するにはどうすればよいですか?
私はDOMを使用しているJavaScriptを使用していることに変わりはありません。ベストプラクティスや参考になるものが見つからないようですので、少し迷っています。
これはすべて意味がありますか?そうでない場合は、私には何ができないのかを教えてください。そして、できる限り私はそれをクリアしようとします。
編集:ここに小さなコードサンプルがあります。
これはJavaScriptオブジェクトの宣言がどのように見えるまさにされています
var example = new SmartDropDown('uomSDD','75','1','7','','','','',2);
最初のパラメータはレンダリング要素の一つのHTML IDですので、私はできないだけその理由の(答えの1つに言及されているように、配列を使用してください;私がその細部について言及するのを忘れてしまったと気づくまで、すばらしい答えです)。私はとのIDを変更する方法を考え出す必要があります。
SmartDropDownオブジェクトの一部のメソッドは、ShowOptions
,HideOptions
、BindOptions
です。ボタンがクリックされたときに呼ばれていたコードについては
は、ここにある:それからの入力、選択、スパン、などと:要約するので
function AddLineItem()
{
var lineItemsParent = $("lineItems");
var newRow = lineItemTemplateNode.cloneNode(true);
lineItemsParent.appendChild(newRow);
}
、行項目のHTMLは通常のものが含まれています上記のJS宣言。上記のコードを使用して新しい広告申込情報を追加するため、JS変数もクローンになります。そして、私は1)要素のIDを変更する方法と2)すべてのJS参照(配列が既に示唆している)を追跡する方法が必要です。
各広告申込情報のJavaScriptオブジェクトxの目的は何ですか。 –
JSをレンダリングするコントロールは、自社で作成されたソートの自動完成ドロップダウンであり、レンダリングするJSオブジェクトはJSを介した相互作用を可能にするオブジェクトです。それは十分な情報ですか? –