私はステップバイステップのウィザードのような流れを持っています。各ステップの後、ユーザーがそのステップで入力した情報は簡単な要約ビューに崩壊し、その隣に「戻る」リンクが表示されますユーザーが何かを変更したいと判断した場合、フローのそのステップに戻ります。jQuery:onclickハンドラをキャッシュできませんか?
問題は、ウィザードのアニメーション化中に「戻る」リンクをクリック可能にしたくないということです。これを達成するために、私は以前何度も使用していたトリックを使用しています。 onclick
ハンドラを別のプロパティにキャッシングして無効にしたい場合は、再度クリック可能にしたいときに復元します。 jQueryでこれをやってみるのは初めてですが、何らかの理由で動作していません。マイ無効コードです:
jQuery.each($("a.goBackLink"), function() {
this._oldOnclick = this.onclick;
this.onclick = function() {alert("disabled!!!");};
$(this).css("color", "lightGray ! important");
});
...と私の有効コードがある:
jQuery.each($("a.goBackLink"), function() {
this.onclick = this._oldOnclick;
$(this).css("color", "#0000CC ! important");
});
それは働いていない理由を私はよく分からない(これらは良いですが、昔ながらのonclickハンドラを使用して定義対応するリンクタグ上のonclick
属性)。リンクを無効にした後、私はいつも "無効になっている!!!"メッセージをクリックすると、コードを実行した後でも、それらを再度有効にする必要があります。何か案は?
このコードのその他の小さな問題の1つは、css()
のリンクカラーを変更する呼び出しも機能していないように見えることです。
:-) typeosのためのあなたのコンソールを監視テスト私のために。有効なコードを呼び出すときに何か間違ったことをしているように見えます。そのため、色も出ません。 –
JSFを使用していますか?それ以外の$をjQueryに置き換えようとすると、あなたのコードをコンソールで試してみたところ、うまくいきました。多分、他の部品が干渉しているのでしょうか? – SelimOber
@Yiğ[email protected] - あなたは正しいです、コードは正しいことをしていましたが、間違って使われていました。基本的には、 'disable'コードを2回呼び出すことによって、キャッシュされたonclickハンドラをプレースホルダ1で無制限にする場合があります。パッチを当てて、すべてうまく動作します(CSSの色は無視されます)。 – aroth