Frage

ich habe eine stark typisierte asp.net-mvc Ansicht und das Modell hat einen. Links Eigenschaft.

Links ist ein Array von , die eine URL hat , Beschreibung und ein ID .

Ich habe eine Reihe von Links. Alle Links hat eine Liste von Tags und diese Tags werden so verlegt aus:

<a id="98" href="www.ibm.com>IBM</a><b class='dblclick'>Tags: Software</b>
<a id="99" href="www.microsoft.com>MIcrosoft</a><b class='dblclick'>Tags: Software</b>
<a id="100" href="www.apple.com>Apple</a><b class='dblclick'>Tags: Software, Fruit</b>

(www.ibm.com ist die URL , IBM ist die Beschreibung: , und "98" ist die ID )

Ich habe folgende jQuery-Code:

<script type="text/javascript">
    $(document).ready(function() {

        $(".dblclick").editable('<%=Url.Action("UpdateSettings","Links", new { site = Model.Links[0].ID }) %>', {
            tooltip: "Doubleclick to edit...",
            event: "dblclick",
            style: 'display: inline; width:400px;'
        });

    });

das Problem, das möchte ich nicht haben: Model.Links [0] .ID hart codierte, ich will in die Methode in dem Index passieren (98 in diesem Fall). Da jeder Link, um die „dblclick“ Klasse hat, wie ich in dem genauen Link oder Index in dieses Array übergeben werden kann, so kann ich in dem ID-Feld in diese editierbaren Methode bleiben?

War es hilfreich?

Lösung

Sie sollten weg mit ersetzen:

Model.Links[0].ID  

Mit

$(this).prev("a").attr("id")

Auch wenn es besser wäre, wenn Sie nicht zur Seite zu durchqueren müssen, da es dazu bestimmt ist, Probleme zu verursachen. Wenn Sie die ID auf dem „b“ Elemente setzen könnten, wäre es so einfach wie

<a id="98" href="www.ibm.com>IBM</a><b class="dblclick" id="98">Tags: Software</b>

...

$(this).attr("id")

Auch Sie können über diese IDs denken müssen als HTML-ID Attribute nicht mit einer Zahl beginnen sollen!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top