2009-09-03 8 views
0

J'ai pris le code du MSDN page on Matrix Filters et l'ai légèrement modifié. Les fonctions tous attendent une entrée variable oObj qui se transmet à l'origine de la onfilterchange:À quoi cela fait-il référence dans un attribut onfilterchange?

<DIV ID="oDiv" STYLE="position:absolute; 
filter:progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand')" 
    onfilterchange="fnSpin(this)" > 

Ce que je suis en train d'essayer de faire est d'envoyer des valeurs arbitraires à la fonction setRotation en utilisant l'événement onclick d'un bouton:

<input type="button" onclick="var theDiv = document.getElementById('oDiv'); setRotation(theDiv,45)" value="Set"> 

Malheureusement, lorsque je clique sur le bouton, j'obtiens une erreur: Objet attendu. J'ai évidemment mal compris ce que this fait exactement dans le onfilterchange - je pensais que ce serait l'élément HTML avec ID oDiv. Autant que je sache, filters should exist on the DIV element. Je me souviens avoir lu récemment une excellente description de ce que this fait référence à différentes situations dans Javascript: The Good Parts, mais je n'ai pas accès à la version imprimée en ce moment, et la recherche de l'édition Safari pour "ceci" n'a pas été très productive.

choses que j'ai essayé (la plupart du temps dans l'espoir que c'est un bug IE obscure):

  • Ayant document.getElementById('oDiv') comme premier argument à setRotation
  • En utilisant document.all au lieu de getElementById
  • Utilisation des propriétés différentes tel que styles

Complete code is online here.

Répondre

0

Me semble que vous avez une faute de frappe:

vôtre:

<input type="button" onclick="var theDiv = document.getElementById('oDiv'); setRotation(theDiv,45)" value="Set"> 

Sites Web:

<input type="button" onclick="var theDiv = document.getElementById('oDiv').style; setRotation(theDiv,45)" value="Set"> 

theDiv semble se référer au style propriété de la div réelle elle-même .

+0

En fait, je viens de me rendre compte que j'ai une faute de frappe bien pire - j'ai setRotation et non fnSetRotation. Je suis un muppet! – robertc

Questions connexes