Function . Unload() - jQuery

Asked

Viewed 145 times

2

I make two ajax requests to an external file from which they add and remove products, but that’s not very relevant in this issue. I wanted every time the page was updated, the function removeCartaotoCart was triggered so that according to the id of the selected product, it was removed before the page was reloaded.

Code for Ajax requests:

var productSelected = "";

            function addCartao(product){
                if( productSelected != "" ){
                    removeCartaotoCart(productSelected);
                  }
                $j('#cartaoMensagem'+product).hide();
                $j('#cartaoMensagemRemover'+product).show();
                $j('#cartaoMensagemRemover'+product).css({'background-color': '#000000'});
                $j.ajax({
                  type: "POST",
                  url: "adiciona.php",
                  data: {
                    product: product
                  },
                  dataType: 'json',
                  cache : false,
                  beforeSend: function () {

                  },
                  success: function (retorno) {
                    var button = $j('#cartaoMensagemRemover'+product);
                    productSelected = product;                   
                    $j('.item-custom').append('<tr id="trAppend'+product+'"><td class="a-center lc-thumbnails"><img src="' + retorno['imagem'] + '" width="50" height="50" alt="' + retorno['name'] + '"></td><td><h3 class="product-name">' + retorno['name'] + '</h3></td><td class="a-center">1</td><td class="a-right"><span class="cart-price"><span class="price"> R$ ' + retorno['price'] + '</span></span></td></tr>');
                    getSubTotal();
                    getGrandTotal();
                  },
                  complete: function () {

                  },
                  error: function (x,y,z) {
                    alert("error");
                    alert(x);
                    alert(y);
                    alert(z);
                  }
              });
            }

            function removeCartaotoCart(itemId){
                console.log('Entrou');
                console.log(itemId);
                productSelected = ""; 
                $j('#cartaoMensagemRemover'+itemId).hide();
                $j('#cartaoMensagem'+itemId).show();
                $j.ajax({
                    type:"POST",
                    url:"remove.php",
                    data:{
                        itemId: itemId
                    },
                    cache: false,
                    beforeSend: function(){

                    },
                    success: function(retorno){
                        var button = $j('#cartaoMensagemRemover'+itemId);  
                        $j('.item-custom #trAppend'+itemId+'').remove();
                        getSubTotal();
                        getGrandTotal();

                    },
                    complete: function () {

                    },
                    error: function (x,y,z) {
                    alert("error");
                    alert(x);
                    alert(y);
                    alert(z);
                  }
                });
            }

        $j(window).unload(function(){
            console.log('Recarregando ...');
            console.log(productSelected);
            removeCartaotoCart(productSelected);
        });

Note: I tried to do the function .unload(), but returns me errors ([object Object]) and the product is not removed.

1 answer

0


The problem is that there is no way to make this request for the function .unload(), because in addition to the error, it would "break" this request in the middle. In this case, it should be done in the page loading, by means of the following code:

$j(document).ready(function(){
    console.log('Carregando ...');
    console.log(productSelected);
    removeCartaotoCart(productSelected);
});

Browser other questions tagged

You are not signed in. Login or sign up in order to post.