M.: Android-Browser und onclick in <li>

Mahlzeit,
ich steh grad aufm Schlauch.

Ich hab auf ner Seite folgenden Code:

  
<div name="MPD_Client_Player" onclick="Playback(0, 'Play');" class="MPD_Client_Player box downlight enabled">&gt;</div>  

Beim Klick wird die Funktion auch ausgeführt, alles so wie es soll.
Folgendes macht Probleme:

  
	<div>  
		<ul>  
					<li onclick="Playback(0, 'Play', '0')" id="act" class="act">  
				<a name="actSong" id="actSong">&nbsp;Alice Cooper - I'm Eighteen</a>			</li>  
					<li onclick="Playback(0, 'Play', '1')" class="next">&nbsp;Alice Cooper - Is It My Body			</li>  
					<li onclick="Playback(0, 'Play', '2')">&nbsp;Alice Cooper - Desperado			</li>  
					<li onclick="Playback(0, 'Play', '3')">&nbsp;Alice Cooper - Under My Wheels			</li>  
					<li onclick="Playback(0, 'Play', '4')">&nbsp;Alice Cooper - Be My Lover			</li>  
					<li onclick="Playback(0, 'Play', '5')">&nbsp;Alice Cooper - School's Out			</li>  
					<li onclick="Playback(0, 'Play', '6')">&nbsp;Alice Cooper - Hello Hooray			</li>  
					<li onclick="Playback(0, 'Play', '7')">&nbsp;Alice Cooper - Elected			</li>  
					<li onclick="Playback(0, 'Play', '8')">&nbsp;Alice Cooper - No More Mr Nice Guy			</li>  
					<li onclick="Playback(0, 'Play', '9')">&nbsp;Alice Cooper - Billion Dollar Babies			</li>  
					<li onclick="Playback(0, 'Play', '10')">&nbsp;Alice Cooper - Teenage Lament '74			</li>  
					<li onclick="Playback(0, 'Play', '11')">&nbsp;Alice Cooper - Muscle Of Love			</li>  
					<li onclick="Playback(0, 'Play', '12')">&nbsp;Alice Cooper - Freedom			</li>  
					<li onclick="Playback(0, 'Play', '13')">&nbsp;Alice Cooper - Lock Me Up			</li>  
					<li onclick="Playback(0, 'Play', '14')">&nbsp;Alice Cooper - Gave The Radio Back			</li>  
					<li onclick="Playback(0, 'Play', '15')">&nbsp;Alice Cooper - Step On You			</li>  
					<li onclick="Playback(0, 'Play', '16')">&nbsp;Alice Cooper - Not That Kind Of Love			</li>  
					<li onclick="Playback(0, 'Play', '17')">&nbsp;Alice Cooper - Prince Of Darkness			</li>  
					<li onclick="Playback(0, 'Play', '18')">&nbsp;Alice Cooper - Time To Kill			</li>  
					<li onclick="Playback(0, 'Play', '19')">&nbsp;Alice Cooper - Chop, Chop, Chop			</li>  
					<li onclick="Playback(0, 'Play', '20')">&nbsp;Alice Cooper - Gail			</li>  
					<li onclick="Playback(0, 'Play', '21')">&nbsp;Alice Cooper - Roses On White Lace			</li>  
					<li></li>  
			<li></li>  
			<li></li>  
		</ul>  
	</div>  

Der zusätzliche Parameter der Funktion Playback()ist optional. Das passt also.

Unter Debian/Chrome 23 gehts ohne Probleme, im Android-Browser und im Dolphin-Browser hat ein Klick keine Wirkung. Getestet im SDK und auf meinem SGS2

Selbst wenn ich innerhalb des <li> ein <div> einfüge, hat das onclick keine Auswirkung.

Vermutlich nur ne Banalität und ich bin blind, kann mich mal jemand schubsen?

  1. Unter Debian/Chrome 23 gehts ohne Probleme, im Android-Browser und im Dolphin-Browser hat ein Klick keine Wirkung. Getestet im SDK und auf meinem SGS2

    Hast du eine Maus an dein Gerät angeschlossen?
    Falls nicht, benutz lieber Touch-Events.

    1. Falls nicht, benutz lieber Touch-Events.

      Danke, Touchevents kenne ich. Das beantwortet aber nicht meine Frage, wieso onclick einmal funktioniert und einmal nicht.
      Ich will das Problem verstehen und nicht einfach den Quellcode ändern und irgendwann hab ich das Problem wieder, weil es nie gelöst wurde.

      1. Danke, Touchevents kenne ich. Das beantwortet aber nicht meine Frage, wieso onclick einmal funktioniert und einmal nicht.

        Das Problem ist, dass der Android-Browser nicht cursor-basiert ist, das Click-Event wird nur bei klickbaren Elementen wie Buttons ausgelöst. Guter Artikel zum Thema: hier entlang.

        1. das Click-Event wird nur bei klickbaren Elementen wie Buttons ausgelöst.

          Das ist ja mein Dilemma. Bei einem div gehts beim anderen nicht. Ich vermute zwar, dass es daran liegt, dass das div innerhalb einer Liste liegt, weiss es aber nicht.

          Werd jetzt erstmal auf Touchevents umstellen und bei Gelegenheit den Grund für mein "Problem" suchen.

          Danke auf jeden Fall für den Lesestoff.

          1. Werd jetzt erstmal auf Touchevents umstellen

            Du musst nicht umstellen, sondern beides anbieten:
            element.onclick = element.ontouchstart = myHandler;

            1. Du musst nicht umstellen, sondern beides anbieten:

              Würde das keinen fehlerhaften/invaliden Code erzeugen?
              Ich häng immer noch mit Javascript ein wenig hinterher, zuviele Projekte ausserhalb des Browsers und/oder auf Serverebene.

              Aber langsam wirds. Javascript ist sicher auch nur ne Insel :D