Frage

<html>
<head>
<script type="text/javascript">
window.onload = function() {
 var btn = document.getElementById("button");
 var tog = document.getElementById("toggle");
 tog.onclick = function() {
  if(btn.disabled) {
   btn.disabled = false;
  } else {
   btn.disabled = true;
  }
 };
 //btn.watch("disabled", function(prop, val, newval) { });
};
</script>
</head>
<body>
<input type="button" value="Button" id="button" />
<input type="button" value="Toggle" id="toggle" />
</body>
</html>

Wenn Sie diesen Code testen, aktiviert und deaktiviert die Schaltfläche "Schalter" erfolgreich die andere Taste.

Wenn Sie jedoch die Zeile von Btn.Watch () entfernen, wird das deaktivierte Tag jedoch immer auf true festgelegt.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Da die durch Watch definierte Überwachungsfunktion einen neuen Wert zurückgeben muss:

 btn.watch("disabled", function(prop, val, newval) { return newval; });

Bearbeiten: Ich gehe davon aus, dass Sie Ihre Monitormethode definieren möchten, ohne die Funktionalität Ihres Skripts zu beeinflussen. Deshalb müssen Sie sich darum kümmern, einen neuen Wert für den neuen Wert zurückzugeben disabled Eigentum.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top