Sto cercando di eseguire il debug di un problema JS/Jquery con un'applicazione python-django durante il tentativo di attuarlo nel mio progetto Django. Ho usato console sviluppatori del mio browser per recuperare il seguente errore:Jquery Javascript non definita
TypeError: 'undefined' is not a function (evaluating '$(this).yourlabsWidget()')
Così sono andato a cercare in cui è stata definita la funzione 'yourlabsWidget(), ed è direttamente sopra dove la chiamata di funzione è.
$.fn.yourlabsWidget = function(overrides) { ... }
$(document).ready(function() {
$('.autocomplete-light-widget[data-bootstrap=normal]').live('initialize', function() {
$(this).yourlabsWidget();
});
io non so molto di javascript o jQuery, quindi sono completamente ad una perdita qui. Supponendo che non vi sia nulla di sintatticamente sbagliato, un problema come questo implica che jquery non funzioni correttamente? So che non ci sono molte informazioni da seguire, ma aggiungerò qualsiasi altra informazione pertinente richiesta.
Il file app e specifico mi dà fastidio sono qui (rispettivamente),
Ho testato l'applicazione con il proprio progetto di test sul mio server di sviluppo, e funziona fuori dalla scatola con il proprio progetto di test. Tuttavia, se prendo un'applicazione di prova di lavoro e installarlo al mio Django-progetto non funziona più.
UPDATE:
intera definizione di funzione:
$.fn.yourlabsWidget = function(overrides) {
var overrides = overrides ? overrides : {};
if (this.data('widget') == undefined) {
// Instanciate the widget
var widget = new yourlabs.Widget(this);
// Pares data-*
var data = this.data();
var dataOverrides = {autocompleteOptions: {}};
for (var key in data) {
if (!key) continue;
if (key.substr(0, 12) == 'autocomplete') {
var newKey = key.replace('autocomplete', '');
newKey = newKey.replace(newKey[0], newKey[0].toLowerCase())
dataOverrides['autocompleteOptions'][newKey] = data[key];
} else {
dataOverrides[key] = data[key];
}
}
// Allow attribute overrides
widget = $.extend(widget, dataOverrides);
// Allow javascript object overrides
widget = $.extend(widget, overrides);
this.data('widget', widget);
// Setup for usage
widget.initialize();
// Widget is ready
widget.widget.attr('data-widget-ready', 1);
widget.widget.trigger('widget-ready');
}
return this.data('widget');
}
HTML (incluse) MODULO
<!DOCTYPE html>
<html lang="en-us" >
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="/static/admin/css/forms.css" />
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="/static/admin/css/ie.css" /><![endif]-->
<script type="text/javascript">window.__admin_media_prefix__ = "/static/admin/";</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/static/autocomplete_light/autocomplete.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/widget.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/addanother.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/text_widget.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/remote.js"></script>
<link rel="stylesheet" type="text/css" href="/static/autocomplete_light/style.css" />
HTML:
<span class="autocomplete-light-widget customer_order_products_set-0-product_id
single"
id="id_customer_order_products_set-0-product_id-wrapper"
data-max-values="1" data-bootstrap="normal"
data-autocomplete-url="http://127.0.0.1:8000/autocomplete/InventoryAutocomplete/" data-autocomplete-choice-selector="[data-value]" data-autocomplete-placeholder="THIS IS WORKING"
>
NOTA: So che l'URL non è portatile. È solo per test.
Potete fornire l'implementazione per $ .fn.yourlabsWidget()? – nekman
Penso che per implementazione intendi il codice per la funzione. Certo che si può. Aggiornerò la domanda Se non è quello che intendevi, per favore fammelo sapere e correggerò. – Jglstewart
se 'funziona fuori dalla scatola con nel proprio progetto di test' non è chiaro cosa è diverso quando si ottiene l'errore – charlietfl