2017-05-28 103 views
0

所以我有几个问题。第一个...我有2页,一个products.html页面和一个search.html页面。 products.html页面在.onPageAfterAnimation()中运行一些Ajax;从数据库获取产品并显示它们。返回的HTML包含用户可以在文本框内增加和减少数字值的部分。jQuery Click Event Issue - Framework7

The button to

增加或减少1的值开始工作但是当我打开products.html页,当我进入search.html,并使用我的Android的后退按钮返回到products.html页面(我的按钮有pushState = true),然后按增/减键会增加/ 2,通过降低。如果我再次尝试它增加做同样的事情/ 3下降等等...

This is my inc

这个我我的增加/减少代码在我products.html放在页面:

myApp.onPageAfterAnimation('catalogs', function (page) { 

    //Increse/decrease product quantity 
    $(“.promo-screen-content”).on(“click”, “.addToCartBtn”, function(){ 
    var productid = $(this).attr(“data-productId”), 
     currentvalue = parseInt($('#txtQuantity' + productid).val()); 

    $('#txtQuantity' + productid).val((currentvalue + 1).toString()); 
    }); 

    $(“.promo-screen-content”).on(“click”, “.removeFromCartBtn”, function(){ 
    var productid = $(this).attr(“data-productId”), 
     currentvalue = parseInt($('#txtQuantity' + productid).val()); 

    if(currentvalue > 1){ 
     $('#txtQuantity' + productid).val((current_value – 1).toString()); 
    } 
    }); 

}); 

谁知道为什么发生这种情况,如何解决?

我的第二个问题有点不同。当我点击一个按钮时,需要点击并执行过程3或4次。因此,例如,如果我在点击时显示通知,则会显示该通知3到4次。

我不知道这些是常见还是知道人们遇到的问题。任何帮助是极大的赞赏!

+0

你什么时候打电话给上面的代码? (*绑定发生的时间*)。我在问,因为问题是你有多次绑定相同的处理程序(*因此它们运行多次*)。 –

+1

因此,快速解决可能是使用'off'来解除处理程序的再次绑定。 '('click','。addToCartBtn',...)''和'$(“。promo-screen)('点击','。addToCartBtn')。 ('click','。removeFromCartBtn',...)'。off('click','。removeFromCartBtn')。但是基于** Framework7 **必须有一个更正确的方法,我不使用,所以我不能建议任何相关的东西。 –

+0

默认情况下,所有页面都使用Ajax加载。我不知道这可能与它有什么关系,因为当我去'search.html'然后回到'products.html',然后在那个页面中刷新它又开始工作。所以这发生在第二页加载Ajax并返回之后。 –

回答

1

我把我的代码放在错误的页面回调中。我不得不把它放在.onPageInit();回调中。