5

这是我打开 jquery 对话框的 javascript 函数。

   ('#dialog').append(iframe).appendTo("body").dialog({
          autoOpen: false,
          modal: true,
          resizable: false,
          show: 'slide',        
          width: 800,       
          height: 700,        
         close: function() {           
    }   
});             
$('#dialog_click').click("callback",function() {            
   $('#dialog').dialog('open');                 
   return false;
}); 

如何show: 'slide,从 IE 中隐藏该部分?

4

6 回答 6

2
var options = {
          autoOpen: false,
          modal: true,
          resizable: false,       
          width: 800,       
          height: 700,        
         close: function() {           
    }   
};
if ( ! $.browser.msie){
  options ['show'] = 'slide';
}

$('#dialog').append(iframe).appendTo("body").dialog(options);  
于 2013-04-18T11:47:07.903 回答
2
$('#dialog').append(iframe).appendTo("body").dialog({
          autoOpen: false,
          modal: true,
          resizable: false,       
          width: 800,       
          height: 700,        
         close: function() {           
    } 
});

if(!$.browser.msie) {
     $( "#dialog" ).dialog( "option", "show", "slide" );
}
于 2013-04-18T11:47:31.380 回答
2

尝试这个

if ( ! $.browser.msie){
  $( "#dialog" ).dialog( "option", "show", "slide" )
} 
于 2013-04-18T11:47:24.447 回答
2

有几种解决方法(整个脚本的条件注释,稍后更改属性等),但没有人发布完全符合您要求的解决方案:仅在IE.

然后看看这个:

   ('#dialog').append(iframe).appendTo("body").dialog({
          autoOpen: false,
          modal: true,
          resizable: false,

        /*@cc_on @*/
        /*@if (true)

        @else @*/
          show: 'slide',        
        /*@end @*/

          width: 800,       
          height: 700,        
         close: function() {           
    }   
});             
$('#dialog_click').click("callback",function() {            
   $('#dialog').dialog('open');                 
   return false;
}); 

IE不会包含show: 'slide',,而non-IE浏览器不会读取Conditional Compilation Statements,因此条件将落在(未注释的)else 部分。

阅读有关条件编译语句的更多信息

于 2013-04-18T12:45:17.133 回答
2

jquery 已从 >= 1.9 版本中删除了对 jQuery.browser.msie 的支持

所以

var opts = {
    autoOpen : false,
    modal : true,
    resizable : false,
    show : 'slide',
    width : 800,
    height : 700,
    close : function() {
    }
};
if (!/msie/.test(window.navigator.userAgent)) {
    opts.show = 'slide';
}

('#dialog').append(iframe).appendTo("body").dialog(opts);
$('#dialog_click').click("callback", function() {
    $('#dialog').dialog('open');
    return false;
});
于 2013-04-18T11:58:26.970 回答
0

您可以做几件事。

首先有条件注释,即

<!--[if !IE ]>
    <script>
       $('#dialog').append(iframe).appendTo("body").dialog({
         autoOpen: false,
         modal: true,
         resizable: false,
         show: 'slide',        
         width: 800,       
         height: 700,        
         close: function() {           
         }   
       });             
       $('#dialog_click').click("callback",function() {            
         $('#dialog').dialog('open');                 
         return false; 
       }); 
    </script>
<![endif]-->

或者您可以检查 jquery browser variable ,正如其他人所指的那样。

此外,如果您采用这种方式,并且您真的想针对旧版本的 IE,您可以使用一些特定于它的功能(例如 attachEvent )

于 2013-04-18T11:50:41.707 回答