Ich habe eine ungeordnete Liste von Elementen, so etwas wie dies, der Kürze halber verkürzt:Kann ein jQuery click-Ereignis auf einem Hintergrundbild in einer Liste ausgelöst werden?
<div id="elementsContainer">
<ul>
<li><a>One</a></li>
<li><a>Two</a></li>
</ul>
</div>
ich die Liste haben gestylt, aber diese 3 Arten befassen sich mit Hintergrundbildern für die Listeneinträge:
#elementsContainer ul li {
list-style:none;
}
#elementsContainer a {
background: transparent url(/images/icons/bullet_delete.png) no-repeat 5px 50%;
}
#elementsContainer a:hover,
#elementsContainer a:focus,
#elementsContainer a:active {
background:#fff url(/images/icons/delete.png) no-repeat 5px 50%;
}
Die Liste sieht gut aus - es wird ein kleines Löschsymbol links neben dem Text für jedes Listenelement angezeigt. Allerdings möchte ich jQuery (1.3) verwenden, um die Klickereignisse für jedes Element zu behandeln, und ich möchte separate Funktionalität zwischen dem Hintergrundbild des Listenelements und dem Text des Listenelements. Wenn ich auf das Bild klicke, möchte ich das Objekt löschen. Wenn ich auf den Text klicke, möchte ich den Artikel bearbeiten.
Ich begann so etwas wie dies mit:
$("a").live("click", function(event){
alert($(this).text());
});
Aber ich in $ sehe nichts (this) oder „Ereignis“, das ich feststellen kann, ob ich den Text oder das Bild am klicken.
Ja, ich weiß, ich könnte einfach ein separates "img" -Tag haben und den Klick darauf separat behandeln. Ich werde diesen Weg gehen, wenn das die einzige Option ist. Ich möchte nur wissen, ob es eine Möglichkeit gibt, das Hintergrundbild zu bearbeiten.
Vielen Dank im Voraus!
Sie sollten bedenken, dass dies die einfachste Lösung sein könnte, aber es gibt auch einige Nachteile. Die Verwendung von '' für das Layout ist keine gute Strategie zum Trennen von Struktur und Layout. Das ist nicht die beste Lösung in Bezug auf die Zugänglichkeit. Ich habe jedoch keine besseren und leichteren Vorschläge. – lumbric