Простая функция jQuery работает во всех браузерах, но не в IE - PullRequest
0 голосов
/ 06 января 2010
function check_info(id,value){
    var data = $("#"+id+":checked").val();
    if(value==1){ 
        if(data == 'on'){
           var id_val = id.substring(7);
            $("#user_g"+id_val).css("display","block");
            $(".chkbox_"+id_val).attr("checked","checked");
            $("#user_hidden_"+id_val).val("2");
        }
        else{
            var id_val = id.substring(7);
            $("#user_hidden_"+id_val).val("0");
            $("#user_g"+id_val).css("display","none");
            $(".chkbox_"+id_val).attr("checked","");
            $("#user_hidden_"+id_val).val("0");
        }
    }
 ......
 ......
}

Функция должна вызываться отсюда, и в соответствии с опцией флажка она будет показывать следующий div или hide. Он хорошо работает во всех браузерах, но не в любой версии IE. Пожалуйста помоги.

<input name="gro_id_1" type="checkbox" id="gro_id_1" onclick="javascript:check_info(this.id,'1')" title="Office">


<div id="user_g1" class="gr_block">
    --- outupt ---
</div>

Ответы [ 2 ]

3 голосов
/ 06 января 2010

Рассмотрим:

  1. перефразируя if(data == 'on') как if ($("#"+id).is(":checked"))
  2. с заменой .attr("checked", "") на .removeAttr("checked")
  3. связывание события флажка со следующим, вместо onclick=

    $(function() {
        $("#gro_id_1").click(function() {
            check_info(this.id, '1');
        });
    });
    
1 голос
/ 08 января 2010

Я бы предложил use $("#user_g"+id_val).show() вместо $("#user_g"+id_val).css("display","block"); и use $("#user_g"+id_val).hide() вместо $("#user_g"+id_val).css("display","none");.

Вероятно, это не проблема, но это более "стандартный jQuery" способ скрывать и показывать элементы.

Кроме того, откуда берется value var? Это в области видимости, потому что я не вижу его в фрагменте кода.

onclick="javascript:check_info(this.id,'1')" может быть вашей проблемой. Попытайтесь сделать то, что предложил Орен выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...