2013-07-25 13 views
7

Ich habe eine ganze anklickbare Div. Dies ist mein Code:Button onclick innerhalb ganz anklickbar div

<div onclick="location.href='@Url.Action("SubClass", "Product", new { id = productClass.HierarchyId })';" class="menu-class"> 
      <img src="~/Images/ClassImages/@imageName" alt="@productClass.HierarchyShort" /> 
      <div class="menu-class-text"> 
       <span>@productClass.HierarchyShort</span> 
      </div> 
      <div class="menu-class-admin-options"> 
       <button onclick=" location.href = '@Url.Action("EditClass", "Product")'; ">Edit</button><br/> 
       <button onclick=" location.href = '@Url.Action("DeleteClass", "Product")'; ">Delete</button> 
      </div> 
     </div> 

Dies ist ein div mit dem Bild von Produkt- und Gruppennamen. Und wenn der Benutzer es schwebt, zeigen Sie in der div-Show 2 Schaltflächen Bearbeiten und Löschen an. Das Problem ist, wenn ich auf einen beliebigen Button innerhalb von Div klicke, den div's onclick aufrufen, nicht den onclick der Taste. Hilfe anbieten? Sorry mein Englisch.

+0

In Ihrem CSS-Code möchten Sie entweder! Wichtig Attribut Oder verwenden Sie z-Wert, um zu wählen, welche oben ist ID sagen, man wird funktionieren. – matthiasgh

+0

Bitte laden Sie Ihr CSS hoch und ich werde es versuchen – matthiasgh

+6

Wie matthiasgh sagte, versuchen Sie einen höheren Z-Index zu den Buttons hinzuzufügen (stellen Sie sicher, dass sie 'position: relative;' sind). Ist dies nicht der Fall, können Sie versuchen, nach dem Klick auf die Schaltfläche "event.stopPropagation()" ein '' '' ''. – robooneus

Antwort

6

Vielen Dank für alle. Wie sagt Roboneus. ich das gerade gesagt:

<button onclick=" location.href = '@Url.Action("NewClass", "Product")'; event.stopPropagation(); ">Edit</button><br/> 

Und jetzt arbeitet. Danke allen.

+0

schöne Lösung – Matcoil

7

Für Ihre zwei Tasten, eine neue Funktion erstellen und diesen Code am Anfang hinzufügen:

event.cancelBubble = true; 
if(event.stopPropagation) event.stopPropagation(); 

Dann Ihren eigenen Code hinzufügen.

Die Html:

<div onclick="location.href='@Url.Action("SubClass", "Product", new { id = productClass.HierarchyId })';" class="menu-class"> 
     <img src="~/Images/ClassImages/@imageName" alt="@productClass.HierarchyShort" /> 
     <div class="menu-class-text"> 
      <span>@productClass.HierarchyShort</span> 
     </div> 
     <div class="menu-class-admin-options"> 
      <button onclick="editClass()">Edit</button><br/> 
      <button onclick="deleteClass()"; ">Delete</button> 
     </div> 
    </div> 

Die Javascript:

function editClass() { 
    event.cancelBubble = true; 
    if(event.stopPropagation) event.stopPropagation(); 

    location.href = '@Url.Action("EditClass", "Product")'; 
} 

function deleteClass() { 
    event.cancelBubble = true; 
    if(event.stopPropagation) event.stopPropagation();$ 

    location.href = '@Url.Action("DeleteClass", "Product")'; 
}