JavaScript onTap函数

时间:2016-05-03 02:05:07

标签: javascript jquery

论坛还是新手,所以我会尽力解决问题。基本上我正在开发一个移动网络应用程序,并有几个ontap功能,用于在点击按钮后重新加载网页。下面是两个较小的onTap函数的代码,用于演示目的(因此您不必筛选数百行代码)。 licenses_button ontap函数工作得很好,没有任何形式的错误,但back_button ontap函数,以及未在应用程序的初始主页面上创建的所有其他按钮将不会作为按钮的作用,我不知道为什么。有什么建议? (我知道back_button几乎没有内容,我只是删除了很多用于调试目的,甚至无法工作)。谢谢你的建议!

$("#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();

          });

2 个答案:

答案 0 :(得分: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();
    });
});

答案 1 :(得分:0)

您提到了back_button,其他不起作用的按钮未在主页面中创建。由于这些是在以后创建的,因此您必须等待在创建按钮后为这些按钮设置onTap事件。如果您尝试在创建事件处理程序之前设置它们,它们将无法工作。