2014-05-03 17 views
0

我無法通過「span id =」detailKalender「獲得」createMyEvent「函數。 每次加載」detailPage「時,createMyEvent函數都會觸發。 。應該只通過點擊跨度 「#detailKalender」 有什麼建議火無法獲取函數.on(「click」)

我使用的是:?https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/tree/pre-3.0,jQuery的1.11.0,jquery.mobile-1.3.2和PhoneGap的2.9

任何幫助非常感謝!

// JavaScript 
    $('#detailPage').live('pageshow', function(event) { 
     var id = getUrlVars()["id"]; 
     $.getJSON(serviceURL + 'getDetail.php?id='+id, displayDetail); 
    }); 

    function displayDetail(data) { 
     var detailVar = data.item; 
     console.log(detailVar); 

    // title    
     $('#detailTitel').text(detailVar.titel); 
    //location  
     $('#detailLocation').text(detailVar.location); 
    // date  
     $('#detailDatum').text(detailVar.datum);  
    // end date  
     $('#detailDatumEnde').text(detailVar.datumEnde); 

    createMyEvent(detailVar); 
    } 
    // Calendar 
    // prep some variables 
    function createMyEvent(detailVar){ 

     var startDate = new Date(detailVar.datumStart);  
     var endDate = new Date(detailVar.datumEnde); 
     var title = detailVar.titel;             
     var location = detailVar.location;           
     var notes = "myNotes"; 
     var success = function(message) { alert("my alert"); }; 
     var error = function(message) { alert("Error: " + message); }; 

     // create 
     window.plugins.calendar.createEvent(title,location,notes,startDate,endDate,success,error);  
    }   

    function getUrlVars() { 
     var vars = [], hash; 
     var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
     for(var i = 0; i < hashes.length; i++) 
     { 
      hash = hashes[i].split('='); 
      vars.push(hash[0]); 
      vars[hash[0]] = hash[1]; 
     } 
     return vars; 
    } 

html:

<div id="detailPage" data-role="page"> 
    <span id="detailKalender">kalender</span> 
    <script>   
     $("#detailKalender").on("click", createMyEvent); 
    </script> 
    </div> 

回答

3

在頁面加載時,下面的函數被調用

$('#detailPage').live('pageshow', function(event) { // live() is deprecated 
    var id = getUrlVars()["id"]; 
    $.getJSON(serviceURL + 'getDetail.php?id='+id, displayDetail); 
}); 

所以加載JSON時,它會調用回調函數,在這種情況下displayDetail()
這個功能看起來像

function displayDetail(data) { 

    ... code 

    createMyEvent(detailVar); 
} 

和你有它,你在每一個頁面加載

+0

我該怎麼做是正確的調用createMyEvent()功能?我需要它來獲取變量。 – miniMax

+0

那麼,要麼在頁面載入中調用該函數,要麼不?如果您需要在頁面加載中調用該函數,那麼您不能指望它僅在點擊時被調用? – adeneo

+0

不能用類似返回false的方法來做到這一點? – miniMax