2017-06-30 3 views
-2

auf einer Webseite ich dies im Markup an einer Stelle sehen: (man beachte die ID der Spanne)Warum haben zwei Elemente auf einer Seite dieselbe ID?

<div id="UpdatePanel3">  
    <span id="Timer3" style="visibility:hidden;display:none;"></span> 
    <select name="DropDownList1" id="DropDownList1" class="form-control" 
     size="2" onchange="navFromList(this.value);"> 
     <option value="12720">Blawblawblaw</option> 
    </select>           
</div> 

Und unten am Boden in einem Abschnitt CDATA Ich sehe das (die uniqueID bemerken):

Sys.Application.add_init(function() { 
    $create(Sys.UI._Timer, {"enabled":true,"interval":15000,"uniqueID":"Timer3"}, null, null, $get("Timer3")); 
}); 

Wie können sie die gleiche ID auf der gleichen Seite haben? Ich weiß, dass es etwas mit AJAX zu tun hat (oder zumindest teilweise Seitenauffrischungen), aber ich verstehe es noch nicht.

Kann mir das bitte jemand erklären?

+0

Sie kennen den Unterschied zwischen HTML und Javascript ich hoffe. Sys.Application bezieht sich auf den Bereich. – VDWWD

+0

Ich sehe nur ein Element mit der ID Timer3 ...? – Liam

Antwort

1

Dieser Aufruf $create erstellt ein Objekt des Typs und hängt es dann an den Bereich in der DOM-Struktur an. Beachten Sie, dass der Timer selbst kein DOM-Objekt ist, sondern nur ein JavaScript-Objekt. Es hat nur den gleichen Wert des Feldes uniqueID wie die ID des DOM-Objekts.

Sie können so viele JavaScript-Objekte erstellen, wie Sie während der Lebensdauer der Seite erstellen möchten, wobei alle Felder "id" oder "ID" oder "uniqueID" auf denselben Wert gesetzt sind. Es bezieht sich nicht direkt auf Ihr DOM-Modell und steht damit nicht in Konflikt.

+0

Vielen Dank für diese Erklärung. Die uniqueID die gleiche wie eine andere ID zu machen, mag für sie bequem gewesen sein, aber sicher verwirrt mich ... eine Person, die es zum ersten Mal sieht. Ich versuche, den Timer auszuschalten, aber ich kann es nicht verstehen. Ich versuche so etwas wie 'var timer3 = $ find ('<% = Timer3.ClientID%>');' aber timer3 ist immer null. – davecove

+0

@davecove, das ist am besten für eine separate Frage geeignet. Kannst du einen neuen Beitrag veröffentlichen? – Andrei

+0

Fertig ... auf das Risiko von mehr Downvotes ... :( – davecove

Verwandte Themen