2009-09-07 4 views
1

Я использую .slideUp() и .slideToggle, чтобы показать и скрыть два div на основе значения, выбранного в коллекции радиокнопок ,jQuery .slideUp() .slideToggle() в Internet explorer производит обратные эффекты ожидаемого

Он отлично работает в Firefox, Safari и Chrome, но Internet Explorer производит обратный эффект, чем ожидал.

Вот мой Javascript

function TogglePaypal() { 
     $("#bank").slideUp(250, function() { 
      $("#paypal").slideToggle(); 
     }); 
    } 
    function ToggleBank() { 
     $("#paypal").slideUp(250, function() { 
      $("#bank").slideToggle(); 
     }); 
    } 

И вот что я делаю в моем HTML,

<%=Html.RadioButton("PaymentMethod", "PayPal", true, new { onchange = "TogglePaypal();" })%> 

<label class="payment-radio">PayPal</label> 

<%=Html.RadioButton("PaymentMethod", "Bank Account", false, new { onchange = "ToggleBank();" })%> 

<label class="payment-radio">Bank Account</label> 

<div id='paypal'></div> 
<div id='bank' style="display: none"> </div> 

То, что я ожидал (а что Infact происходит в Firefox, Chrome и Safari) заключается в том, что переключатель «PayPal» первоначально проверяется, и отображается индикатор paypal, когда выбрана кнопка банка, панель paypal div скользит вверх, а банк div сдвигается вниз (и наоборот).

Что происходит в интернет-проводнике, кнопка «paypal» изначально выбрана, и отображается экран paypal, но когда я выбираю переключатель банка, ничего не происходит, тогда, когда я нажимаю кнопку Paypal, paypal div сдвигается вверх, а банк div сдвигается вниз, а оттуда я получаю противоположный div, отображаемый на выбранном.

Почему интернет-исследователь должен производить разные результаты для других основных браузеров?

Любые идеи были бы весьма признательны.

ответ

1

Хорошо, мне удалось разобраться, изменив все мои вызовы слайдов на .slideToggle();

function ToggleBank() { 
     $("#paypal").slideToggle(); 
     $("#bank").slideToggle(); 
    } 
+1

Вы испытывали отчаянное срабатывание переключателя (т. Е. Несколько кликов и т. Д.), Так как у меня было много проблем с переключением раньше, не в состоянии идти в ногу со входом на экране. Я пытаюсь быть явным, когда хочу показать/скрыть, это немного больше кода, но немного более надежным ... – daddywoodland

0

Я думаю, это связано с тем, что IE не регистрирует событие Change на переключателях, пока AFTER не удаляется от него. (т. е. когда вы нажимаете кнопку «Paypal», ТОГДА регистрирует событие изменения для параметра «Банк», потому что оно потеряло фокус).

Часто люди используют событие Click вместо Change для флажков/переключателей из-за этой разницы в поведении.

Смежные вопросы