2012-03-27 58 views
0

我希望有一些新鲜的眼睛可以看到我失踪的东西。我有一个页面(在WordPress网站中),在Firefox,Chrome,Opera & Safari中运行良好,但不在IE中。为了查看它是否执行了任何操作,我在document.ready函数的第一行中放置了一个警报,并且它显示在除IE之外的所有浏览器中(在IE7和IE9上尝试过)。为什么javascript/jquery会在所有浏览器中执行但IE?

这里是document.ready函数。任何人都可以看到任何理由,为什么这不会在IE中执行?

<!-- language: lang-js --> 
$(document).ready(function() { 
    alert('in .ready function'); 
    //$("input:text:visible:first").focus(); 
    $(window).scrollTop(); 
    // $(this).scrollTop(0); 
    $("#u_phone").mask("(999) 999-9999"); 
    $('#fab_result').hide(); 
    $('#fab_header').hide(); 
    $('#optIn').hide(); 
    $('div.message').show(); 
    $('#mymap').show(); 
    $("#my_form").validate(); 
    if ($("#u_firstname").length > 0) { 
     $("#u_firstname").rules("add", { 
      required: true, 
      minlength: 5, 
      messages: { 
       required: " This field is required " 
      } 
     }); 
    } 
    if ($("#u_email").length > 0) { 
     $("#u_email").rules("add", { 
      required: true, 
      email: true, 
      messages: { 
       required: " This field is required " 
      } 
     }); 
    } 
    if ($("#u_phone").length > 0) { 
     $("#u_phone").rules("add", { 
      required: true, 
      messages: { 
       required: " This field is required " 
      } 
     }); 
    } 
    if ($("#u_custom_20").length > 0) { 
     $("#u_custom_20").rules("add", { 
      required: true, 
      minlength: 3, 
      messages: { 
       required: " This field is required " 
      } 
     }); 
    } 
    var mapsterOpts = { 
     fillOpacity: 0.5, 
     render_highlight: { 
      fillColor: '2aff00', 
      stroke: true, 
      strokeWidth: 2 
     }, 
     render_select: { 
      fillColor: 'ff000c', 
      stroke: false 
     }, 
     fadeInterval: 5000, 
     isSelectable: false 
    }, 
     mainOpts = $.extend({}, mapsterOpts, { 
      mapKey: 'province', 
      onClick: clickMain 
     }), 
     detailOpts = $.extend({}, mapsterOpts, { 
      onClick: clickDetail 
     }); 
    $('#canada-map').mapster(mainOpts); 
}); 
+0

你是什么意思不执行?在顶部火警?你能从IE的错误控制台粘贴一些信息吗? – Fresheyeball 2012-03-27 04:15:50

+0

启用脚本调试。在页面刷新上查找语法错误。 – 2012-03-27 04:17:06

+0

您的脚本是否会创建一个在您的IE浏览器中不起作用的画布标签?如果是这样的话,将其包装在条件标签中以检查浏览器 – mikevoermans 2012-03-27 04:26:32

回答

-1

问题是在这里:

使用VAR声明变量,不要使用逗号(,),而不是(;)

改变这一点:

var mapsterOpts = { 
    fillOpacity: 0.5, 
    render_highlight: { 
     fillColor: '2aff00', 
     stroke: true, 
     strokeWidth: 2 
    }, 
    render_select: { 
     fillColor: 'ff000c', 
     stroke: false 
    }, 
    fadeInterval: 5000, 
    isSelectable: false 
}, 
    mainOpts = $.extend({}, mapsterOpts, { 
     mapKey: 'province', 
     onClick: clickMain 
    }), 
    detailOpts = $.extend({}, mapsterOpts, { 
     onClick: clickDetail 
    }); 
$('#canada-map').mapster(mainOpts); 

var mapsterOpts = { 
     fillOpacity: 0.5, 
     render_highlight: { 
      fillColor: '2aff00', 
      stroke: true, 
      strokeWidth: 2 
     }, 
     render_select: { 
      fillColor: 'ff000c', 
      stroke: false 
     }, 
     fadeInterval: 5000, 
     isSelectable: false 
    }; 
    var mainOpts = $.extend({}, mapsterOpts, { 
     mapKey: 'province', 
     onClick: clickMain 
    }); 
    var detailOpts = $.extend({}, mapsterOpts, { 
     onClick: clickDetail 
    }); 
    $('#canada-map').mapster(mainOpts); 
+0

'var a,b,c,d;'完全合法 - 不确定为什么你会建议在最佳实践中只使用一个'var 'per'function' – gnarf 2012-03-27 05:18:35

+0

是的,谢谢,我完全忘了它 – pylover 2012-03-27 05:21:47

相关问题