2011-10-13 15 views
5

Estoy usando jquery-ui-tabs para permitir a los usuarios crear sus propias pestañas, luego, por supuesto, cambiar entre las pestañas como mejor les parezca. El contenido en los widgets son pequeños widgets que son como mini programas por derecho propio. Los usuarios pueden elegir qué widgets quieren en cualquier pestaña determinada.interferencia de contenido de jquery-ui-tabs

Esto funciona bien siempre que cualquier widget determinado solo se configure en 1 pestaña, sin embargo, las cosas comienzan a ir mal cuando un widget dado se agrega a 2 pestañas o más. Cuando se generan los widgets, usan el ID de la base de datos. Por ejemplo . Si un widget dado se agrega a 2 o más pestañas, terminan con 2 divs con la misma id de id, por ejemplo widget_1, que causa problemas como se puede imaginar.

Así que mi pregunta es, ¿cuál es la mejor manera de resolver ese problema?

Desearía saber antes que querían poder usar el mismo widget en más de 1 pestaña. Me da la sensación de esto es casi va a tener que ser una reescritura completa ...

Respuesta

2

qué el "div llamado div1" tienen "div1" como clase o ID ?

suena su pregunta como si fuera un Identificación, y eso es todo el problema: the id has to be unique

Para solucionar esto, el trabajo con las clases - que se puede utilizar varias veces y usted debería ser capaz de hacer exactamente las mismas cosas (pero eso es un poco difícil de decir sin ver un código).

EDIT: cambió el enlace de mi puño para mostrar la recomendación w3c. conecté this article antes de

+0

simplemente utilizando la última línea de ese artículo * Si desea que sus páginas web para validar como XHTML o HTML, entonces no debería tener identificadores únicos en sus páginas * -. Todo funciona bien sin ni siquiera ¡ser validado! Todavía no entiendo por qué la gente confía tanto en los documentos de recomendación ... Las recomendaciones se completan para seguir, pero hay casos aquí y allá que no podemos simplemente seguir las recomendaciones, y déjenme asegurarles que todo sigue funcionando bien. .. ** en cualquier navegador! ** – balexandre

+0

estoy de acuerdo contigo, pero en este no es el caso donde "simplemente no podemos seguir las recomendaciones" - esto es fácil, y si puedes elegir seguir la recomendación o romper con él, ¿por qué debería alguien elegir romperlo? – oezi

-2

No es una práctica recomendada tener el mismo id en la misma página, pero no debería tener problemas con él, todo lo que necesita hacer en sus llamadas javascript es agregar la pestaña a sí mismo, por ejemplo:

$(".tab-1 #div1")... en lugar de solamente $("#div1")...

embargo, siempre se evitaría tener el mismo id y "contar" su generador de usar div1-random-number y utilice siempre la clase para obtener el widget mediante la ficha actualmente como se ve en el código anterior

Live example on JsBin

+1

no recomendaría utilizar la misma identificación dos veces, incluso si los navegadores aceptan eso. aún está mal y está en contra de la definición: http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 – oezi

+0

** W3 es solo una recomendación **, deja de pensar que el ¡El mundo web de agujeros se bloqueará si no sigues una recomendación! – balexandre

+1

** Las recomendaciones están ahí por una razón **, deje de pensar que todo el mundo usa un moderno navegador de bling-bling: todavía hay personas que usan IE6, Netscape, lectores de pantalla especiales y muchos otros elementos locos/antiguos que podrían tener. un problema con múltiples mismos ID. (y es el mismo trabajo usar una identificación o una clase. Entonces, ¿por qué alguien debería romper la recomendación sin tener ventajas? En el mejor de los casos, no pasa nada, pero es posible que tengas muchos problémas) – oezi

Cuestiones relacionadas