2013-04-24 2 views
7

Sto usando un file JavaScript denominato pull.js. Sta usando per il pulldown refresh in Ipad ma, quando uso quell'altro jquery e javascript smettono di funzionare? Si sta dando il seguente errore di eccezione non rilevata:errore Javascript eccezione non rilevata

" Error: uncaught exception:

[Exception... "Not enough arguments" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: pull.js :: anonymous :: line 26" data: no] "

sto passando il contenuto di questo file di js:

var PULL = function() { 
    var content, 
     pullToRefresh, 
     refreshing, 
     contentStartY, 
     success, 
     start, 
     cancel, 
     startY, 
     track = false, 
     refresh = false; 

    var removeTransition = function() { 
     //content.style['-webkit-transition-duration'] = 0; 
    }; 
    return { 
     init: function(o) { 
      content = document.getElementById('content'); 
      pullToRefresh = document.getElementById('pull_to_refresh'); 
      refreshing = document.getElementById('refreshing'); 
      success = o.success; 
      start = o.start; 
      cancel = o.cancel; 

      document.body.addEventListener('touchstart', function(e) { 
       e.preventDefault(); 
       contentStartY = parseInt(content.style.top); 
       startY = e.touches[0].screenY; 
      }); 

      document.body.addEventListener('touchend', function(e) { 
       if(refresh) { 
        //content.style['-webkit-transition-duration'] = '.5s'; 
        content.style.top = '50px'; 

        pullToRefresh.style.display = 'none'; 
        refreshing.style.display = ''; 

        success(function() { // pass down done callback 
         pullToRefresh.style.display = ''; 
         refreshing.style.display = 'none'; 
         content.style.top = '0'; 
         content.addEventListener('transitionEnd', removeTransition); 
        }); 

        refresh = false; 
       } else if(track) { 
        //content.style['-webkit-transition-duration'] = '.25s'; 
        content.style.top = '0'; 
        content.addEventListener('transitionEnd', removeTransition); 

        cancel(); 
       } 
       track = false; 
      }); 

      document.body.addEventListener('touchmove', function(e) { 
       var move_to = contentStartY - (startY - e.changedTouches[0].screenY); 
       if(move_to > 0) track = true; // start tracking if near the top 
       content.style.top = move_to + 'px'; 

       if(move_to > 50) { 
        refresh = true; 
       } else { 
        //content.style['-webkit-transition'] = ''; 
        refresh = false; 
       } 
      }); 
     } 
    }; 
}(); 

Qualcuno può per favore mi aiuti.

+1

Manca il parametro radix sul metodo parseInt. – lifetimes

+0

@ user125697 radix è un parametro opzionale – 999k

+0

che cos'è il numero di riga 26 –

risposta

5

errori XPC non provengono da chiamare un metodo puro Javascript come parseInt (e l'argomento radix è opzionale da specifica, in modo che tutti quei commenti sono sbagliato su molti aspetti).


Sei missing the third useCapture argument su tutti i vostri addEventListener chiamate:

Qui:

document.body.addEventListener('touchstart', function(e) { 
    ... 
}, false); //<-- add third argument 

Qui:

content.addEventListener('transitionEnd', removeTransition, false); //<-- add third argument 

qui:

document.body.addEventListener('touchend', function(e) { 
    ... 
}, false); //<-- add third argument 

Qui:

content.addEventListener('transitionEnd', removeTransition, false); //<-- add third argument 

E qui:

document.body.addEventListener('touchmove', function(e) { 
    ... 
}, false); //<-- add third argument 

nota che in un newer specification, the argument has been made optional. Ma non importa.