2016-05-03 14 views
0

對於論壇來說還是新手,所以我會盡我所能解決問題。基本上我正在開發一個移動網絡應用程序,並有幾個ontap函數用於重新加載點擊按鈕後的網頁。這裏是我的兩個較小的onTap函數的代碼,用於演示目的(因此您不必篩選數百行代碼)。 licenses_button ontap函數工作得很好,沒有任何形式的錯誤,但back_button ontap函數以及所有其他未在應用程序的初始主頁上創建的按鈕將不會充當按鈕,我不知道爲什麼。有什麼建議? (我知道back_button幾乎沒有內容,爲了調試目的我只刪除了很多內容,甚至無法工作)。感謝您的任何建議!JavaScript onTap函數

$("#licenses_button").onTap(function(event){ 
        $("#play_button").remove(); 
        $("#banner").remove(); 
        $("#licenses_button").remove(); 
        $(".cloud").remove(); 
        $(".cloudalternate").remove(); 


        $("body").append("<div id='back_button'>Back</div"); 
      }); 


      $('#back_button').onTap(function(event) { 

      $('#back_button').remove(); 

      }); 
+0

確保在加載DOM後運行這些腳本。 – user2875289

+0

僅供參考https://learn.jquery.com/using-jquery-core/document-ready/ – user2875289

回答

2

$(selector).onTap(callback); 將處理程序附加到所調用的選定元素上。此時尚未創建的元素不能被選中(顯然,因爲它們還不存在),因此不會得到處理程序。 您需要在添加元素後附加處理程序

例如:

$("#licenses_button").onTap(function(event){ 
    $("#play_button").remove(); 
    $("#banner").remove(); 
    $("#licenses_button").remove(); 
    $(".cloud").remove(); 
    $(".cloudalternate").remove(); 

    // Create the button. 
    var backButton = $("<div id='back_button'>Back</div"); 
    // Append it to the body. 
    $("body").append(backButton); 
    // Attach the handler to the new button. 
    backButton.onTap(function(event) { 
     backButton.remove(); 
    }); 
}); 
+0

感謝您的快速響應!在編程方面,我並不是那麼棒,有沒有機會讓我看看我的代碼中的一個示例實現? – Jordy

+0

我更新了我的答案。 –

0

你提到的back_button和其他按鈕不能工作沒有在主頁創建。由於這些是在稍後創建的,因此必須等待您在創建按鈕後爲這些按鈕設置onTap事件。如果您在創建之前嘗試設置事件處理程序,它們將不起作用。