2010-07-20 16 views
1

Dans mon application, j'ai une rangée de boutons (pour BBcode) qui est inclus dans divers endroits. Chaque bouton est un div vide avec des dimensions fixes, une image d'arrière-plan et un gestionnaire onclick. Cela a très bien fonctionné dans tous les navigateurs - jusqu'à présent.Mode IE8 Standards: le gestionnaire onclick sur div ne se déclenche pas

Maintenant, j'ai ajouté une instance de cette ligne, mais cette fois, il est à l'intérieur d'une div pop-up positionné absolument. (Au moins c'est la différence notable que je peux penser, parce que sinon c'est exactement le même code.) Cela fonctionne également dans tous les navigateurs, sauf pour IE8, où le fait de cliquer sur les boutons ne fait rien. À moins d'activer le mode de compatibilité, dans ce cas, cela fonctionne plutôt bien.

N'est-il pas possible de faire en sorte qu'Internet Explorer se comporte comme il le devrait?

+0

Vous devriez aussi poster votre code. – Sarfraz

Répondre

0

J'ai trouvé la solution. C'était l'attribut "float: left" sur les boutons qui l'a fait échouer.

Ce qui est plutôt étrange parce que dans tous les autres endroits où ce code a été inclus, il a également eu le flotteur - et cela a fonctionné. Même dans IE8.

Quoi qu'il en soit, le retirer et utiliser "display: inline-block" pour le placement a fait l'affaire.

4

J'ai eu le même problème dans IE8. Les zones transparentes dans les DIV n'étaient pas cliquables. Une solution facile consiste à définir le background-image sur un transparent .gif.

Ma solution en CSS:

background-image: url("images/pixel.gif"); 

... où pixel.gif est une image transparente 1x1.

+0

a bien fonctionné comme un charme – vector

+1

voici la version de base64 png si vous ne voulez pas héberger une image. 'background: url ('données: image/png; base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlMAQObYZgAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII =') – bentael