2015-03-27 6 views
5

Ricevo questo messaggio di errore nella console.c.curCSS non è un bug di funzione di jQuery

c.curCSS is not a function 
...,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m... 

Questa funzione mio che fa il completamento automatico:

function autocomplete_name (name_val, id_val,action, button) { 

     $(document).ready(function() { 
      $(name_val).autocomplete({ 
       source: function(request, response) { 
        $.ajax({ 
         url: action, 
         dataType: "json", 
         data: { 
          term: request.term 

         }, 
         success: function(data) { 
          response($.map(data, function(item) { 
           return { 
            label: item.name, 
            value: item.name, 
            id: item.id 
           } 
          })); 
         } 
        }); 
       }, 
       minLength: 2, 
       select: function(event, ui) { 
        $(id_val).val(ui.item.id); 
        $(name_val).val(ui.item.value); 
        $(button).trigger("click") 
       } 
      }); 

     }); 

} 

ho jQuery 1.8.3 versione e non ho accesso al file. Viene da un altro server, io uso solo un collegamento alla libreria. La funzione funziona, ma non ci sono css applicati ai risultati e sto ricevendo quel messaggio di errore nella console. SÌ Ho visto soluzioni che ho modificato la libreria, ma non ho accesso per farlo. Cosa devo fare per farlo funzionare.

+0

possibile duplicato di [jQuery UI 1.8.13 errore improvviso] (http://stackoverflow.com/questions/12048271/jquery-ui-1-8-13-sudden-error) – Terry

+0

@Terry Come ho detto nel inviare. Non ho accesso alla biblioteca. La tua soluzione sta per modificare la libreria. Sto cercando un'altra soluzione, che non modifica la libreria. Presta più attenzione prima di contrassegnarlo come duplicato –

+0

@Jozsef, se non puoi modificare la libreria, perché non devi semplicemente alias '$ .curCSS()' a '$ .css()' nel tuo modulo? –

risposta

27

Per ovviare al problema, è possibile ridefinire semplicemente $.curCSS() nel modulo.

Dopo compresi jQuery, scrivere qualcosa come:

jQuery.curCSS = function(element, prop, val) { 
    return jQuery(element).css(prop, val); 
}; 

jQuery UI finirà per chiamare quella funzione dopo, e il widget di completamento automatico funziona come previsto.

Aggiornamento: Ho appena realizzato la mia risposta è un quasi-duplicato della risposta di Johann Chaves Saborío there. Lo lascerò qui, però, perché la mia funzione propaga il valore di ritorno di $.css() al chiamante, ma il suo no.

+0

perfetto ........................ – Wolfack

+0

Perfetto .... grazie – prabhjot

Problemi correlati