2010-09-01 1 views
0

Я работаю над iPhone-приложением, которое требует от меня динамического изменения содержимого. У меня есть следующий код:jQTouch excute javascript code при переходе на следующую страницу

 <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> 

Когда эта страница вызывается я называю яваскрипт функции:

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); 
    } 
}); 

}

Это все работает отлично, за исключением $ ('# ulHome Ли в') .click() не работает. Он отлично работает на Firefox и Chrome, но не на iPhone.

Где я ошибся? ИЛИ есть ли лучший способ реализовать это?

Спасибо!

+0

вы пробовали 'tap' вместо' click'? –

ответ

0

Использовать кран вместо щелчка, также функция автоматической смены страницы будет переопределять ваши ссылки, так как они имеют местоположение href. Кроме того, я бы не смешивать JavaScript в коде с событиями в JavaScript, так:

<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> 

и

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(); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^