event.preventdefault不仅适用于Firefox

时间:2014-01-09 17:03:42

标签: javascript jquery

我正在构建一个脚本,用于检查html5本地存储cookie,如果没有设置cookie,则会自动启动模式窗口。这是一个语言选择器,一旦选择了语言,用户将保留在页面上(EN)或重定向到法语站点(FR)。

问题是它在firefox中不起作用。实际上模态窗口(reveal.js)根本不起作用。继续得到event.preventdefault错误。

这是我的代码:

<script type="text/javascript">
  function langCheck(){
    var LS = localStorage.getItem('lang');
    if (LS == null) {
      $('#popup').click()
    } else if (LS == "FR") {
      alert("This is French")
      /* window.location.replace("http://www.supermarchepa.com/fr/index.html"); */
    }
  }
  function setToEng(){
    localStorage.setItem('lang', 'EN');
    $('#myModal').trigger('reveal:close')
  }
  function setToFr(){
    localStorage.setItem('lang', 'FR')
  }
  window.onload = langCheck;
</script>

模态窗口自动显示(首次访问时),或者用户可以使用以下方式自行设置语言:

<a href="#" class="big-link" data-reveal-id="myModal" data-animation="fade" data-closeonbackgroundclick="false" data-animationspeed="300" id="popup">Select Language</a>

有人有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

(function ($) { 
    $(document).on("click", 'a[data-reveal-id]', function (e) { 
        event.preventDefault(); 
        var modalLocation = $(this).attr('data-reveal-id'); 
        $('#' + modalLocation).reveal($(this).data()); 
    });
    // Im guessing more is comming here???

无论如何..查看回调function( e ) {&lt; -

中的第一个参数
// change: 
event.preventDefault();
// to:
e.preventDefault();

或将参数名称更改为eventfunction( event )&lt; -