Pregunta

He estado trabajando en una aplicación para el iPhone que me obliga a cambiar de forma dinámica el contenido. Tengo el siguiente código:

       <div id="home">
       <div class="toolbar">
            <a class="blueButton" href="javascript: void(0);" onClick="$('#logout').show();">Logout</a>
            <h1>AllaccessMD</h1>
        </div>
        <h1>Home</h1>
        <ul class="edgetoedge" id="ulHome"></ul>
    </div>

Cuando se llama a esta página que llamo la función javascript:

function setupHome(){
if(localStorage.role == "Specialist"){
    var homeUL = '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#ePresentations">My E-Presentation</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">My Newsletter</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">My Events</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">Medical Partners</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">Search</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#date">Profile</a></li>';
    $('#ulHome').html(homeUL);
} else {
    var homeUL = '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#date">Medical Partners</a></li>'
            + '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#date">Search</a></li>'
            + '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#date">Profile</a></li>';
    $('#ulHome').html(homeUL);
}

$('#ulHome li a').click(function(){
    alert('I dont see this alert on a iPhone!');
    if(this.href.search("#ePresentations") != 0) {
        var idObject = getID(this.id);
        setupEPresentation(idObject.id);
    }
});

}

Todo esto funciona bien, excepto el $ ( '# ulHome li a'). Click () no funciona. Funciona bien en Firefox y Chrome, pero no en un iPhone.

¿Qué hice mal? O ¿hay una mejor manera de implementar esto?

Gracias!

¿Fue útil?

Solución

El uso del grifo en lugar de clic, también la función de cambio automático página va a anular los enlaces, ya que tienen una ubicación href. También no me mezcle Javascript en el código con los acontecimientos en el Javascript, por lo que:

   <div id="home">
     <div class="toolbar">
        <a id="logoutButton" class="blueButton" href="#">Logout</a>
        <h1>AllaccessMD</h1>
     </div>
   <h1>Home</h1>
   <ul class="edgetoedge" id="ulHome"></ul>
   </div>

y

function setupHome(){
if(localStorage.role == "Specialist"){
    var homeUL = '<li class="arrow"><a class="Presentation" id="s,' + localStorage.userID + '" href="#">My E-Presentation</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" data="#">My Newsletter</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#">My Events</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#">Medical Partners</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#">Search</a></li>'
            + '<li class="arrow"><a id="s,' + localStorage.userID + '" href="#">Profile</a></li>';
    $('#ulHome').html(homeUL);
} else {
    var homeUL = '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#">Medical Partners</a></li>'
            + '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#">Search</a></li>'
            + '<li class="arrow"><a id="m,' + localStorage.userID + '" href="#">Profile</a></li>';
    $('#ulHome').html(homeUL);
}

$('#ulHome li a').tap(function(){
    alert('I dont see this alert on a iPhone!');
    if(this.hasClass("Presentations") ) {
        var idObject = getID(this.id);
        setupEPresentation(idObject.id);
    }
});

$('#logoutButton').tap(function() { 
   $('#logout').show();
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top