Abrufen ein data-Attribut aus einem angeklickten element, das ein Ereignis ausgelöst von einem anderen element
Bin ich damit beschäftigt auf einem kleinen jquery-mobile-webapp mit ein paar Tasten und ein popup-Menü. Die Tasten haben einen data-id
- Attribut mit der ID. Wenn ich auf einen button ein popup öffnen, aber ich habe keine Ahnung, wie ich die data-id
Wert..
Den popup-Inhalt wird gesetzt, wenn die popupbeforeposition
Ereignis wird aufgerufen. Diese Inhalte abgerufen werden, die über einen ajax-Aufruf mit der ID (von der Schaltfläche; data-id
).
Ich haben, erstellen Sie ein JSFiddle mit einer einfachen version der webapp: http://jsfiddle.net/yW2PZ/1/
<div data-role="page">
<div data-role="content">
<div data-role="popup" id="media-edit-file" data-overlay-theme="a">
Popup
</div>
<a data-id="1" href="#media-edit-file" data-role="button" data-transition="flip" data-rel="popup">click me</a>
<a data-id="2" href="#media-edit-file" data-role="button" data-transition="flip" data-rel="popup">or me</a>
</div>
</div>
$(document).on('popupbeforeposition', '#media-edit-file', function(event, ui)
{
//how do I get the data-id value.. ?
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Betrachten verbindlich den handler der
click
Veranstaltung dera
tags statt. Dieser Weg, derdata-id
Attribut zugegriffen werden, die durch die$(this)
Objekt der callback-Funktion. Sie können dann öffnen Sie das popup-programmatisch mit derpopup()
Methode.Beispiel:
Sehen jsFiddle demo
Ein wenig mehr über den Zugriff auf HTML5 data-Attribute
Beachten Sie, wie die
data-id
Attribut zugegriffen wird, mit derdata()
Methode alsid
, da diedata-
- Präfix weggelassen wird, wenn HTML5-Attribute werden automatisch von jQuery, um das elementdata()
Objekt. Zum Beispiel bedeutet dies auchdata-rel
wäre auch erreichbar mitdata('rel')
. Für mehr über diedata()
- Methode finden Sie in der jQuery Handbuch.Die richtige Antwort ist: