Sto analizzando una risposta JSON tramite $.ajax()
e costruendo un modulo dai valori di questo oggetto. Lo script che ho scritto è lunga, ma ecco quello che sta facendo:jQuery .attr ('tipo', 'invio') su un elemento pulsante mi dà uno strano errore in IE7
dinamicamente la creazione:
~ un elemento del modulo,
~ un elemento fieldset,
~ un elemento pulsante,
~ 20 o così ingressi di testo e elementi dell'etichettaaggiungendo l'input e le etichette al fieldset
Aggiunta il pulsante per il Fieldset
Aggiunta fieldset alla forma
- Aggiunta forma di un elemento del DOM esistente.
Tutto funziona in tutti i browser tranne uno snippet in IE. L'ho ristretto al seguente pezzo di codice. (doc
è una variabile contenente document
)
fieldset.append(
$(doc.createElement('button'))
.addClass('ui-button')
.attr('type', 'submit')
.html('Re-Rate')
.button()
);
Questo è il passo 3 dall'alto. Crea un elemento pulsante, aggiunge una classe, imposta l'attributo type
su submit
, gli assegna del testo e quindi lo aggiunge al fieldset. IE non riesce con l'errore "Oggetto non supporta questa azione"
Se commento fuori la linea .attr()
in questo modo:
fieldset.append(
$(doc.createElement('button'))
.addClass('ui-button')
//.attr('type', 'submit')
.html('Re-Rate')
.button()
);
Tutto funziona come previsto.
Se vi state chiedendo, il metodo .button()
è jQuery UI
Cosa succede se si 'doc.createElement()' in primo luogo, assegna il tipo di semplice JS e quindi trasformarlo in un oggetto jQuery? Solo per scoprire in quale fase si trova il problema? –
Puoi pensare di usare un template jQuery [motore] (http://github.com/nje/jquery-tmpl) - [esempio] (http://weblogs.asp.net/scottgu/archive/2010/ 05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx) –
Buona idea John. Pekka, per la risposta di Nick sembra essere jQuery-By-Design. – Stephen