2017-12-13 18 views
0

以下の条件に基づいてisSelectedに値を割り当てようとしています。それは、beofreリファクタリングをうまく機能しました。一度リファクタリングすると失敗します。私のミス再利用性のためにdocument.getElementByIdを分離するjavascript

ワーキングコード

var isSelected= false; 
    var temp = isSelected?(document.getElementById("Link").disabled = false): 
(document.getElementById("Link").disabled = true); 

リファクタリングコード(動作しない)

var isSelected= false; 
var myLink = document.getElementById("Link").disabled; 
var temp = isSelected?(myLink = false): (myLink = true); 
+1

失敗して何をして、リンクが無効になっていませんか? – gh9

答えて

1

かもしれ何disabledプロパティは、あなたがそれを変数に割り当てると、原始的ですプロパティへの参照ではなく、実際の値を割り当てます。

代わりdocument.getElementById()から返された要素への参照キャッシュ:

var isSelected= false; 
var myLink = document.getElementById("Link"); 
myLink.disabled = !isSelected; 
+0

IMOは、意味的にリファクタリングされていなければなりません: 'myLink.disabled =!isSelected' – Li357

+0

@ Li357 - 良いアイデア。更新しました。 –

関連する問題