0

jQuery UI を使用して、2 つの ASP.Net ラジオを強化しています。クリックすると UI を変更したいのですが、Chrome デバッガーをステップスルーすると、関数が終了するまで期待どおりに動作し、デバッガーは実際の jquery ソースにステップインし、私の変更コードが元に戻されます。何が起こっている?

機能は以下です。

$('input:radio').change(function(e){
            e.preventDefault();
            var $this = $(this);
            var uploadBox = $this.parent().parent().next();
            var manualBox = $this.parent().parent().next().next();
            if ($this.attr('id') == "<%= UploadRadioButton.ClientID %>"){
                manualBox.hide();
                uploadBox.show();
            }
            else{
                uploadBox.hide();
                manualBox.show();
            }
        }
     );

(.toggle() がなぜか動かない)

デバッガーは、jQuery ソースの次のスニペットに入ります。

if ( ret !== undefined ) {
    event.result = ret;
    if ( ret === false ) {
    event.preventDefault();
    event.stopPropagation();
    }
 }

編集: javascript が UserControl にあることを忘れていました。

4

1 に答える 1

1

イベントハンドラーが終了すると、イベントハンドラーを管理するjQueryコード(実際にイベントハンドラーを呼び出したコード)にステップインし、そこに投稿したのは、イベントハンドラーからの戻り値を処理して意図するかどうかを判断するjQueryコードです伝達を停止し、デフォルトの動作を防止します。これは完全に正常です。

于 2012-09-09T23:24:44.510 に答える