2014-01-09 67 views
0

我構建了一個腳本,用於檢查html5本地存儲cookie,並在沒有設置cookie的情況下自動啓動模態窗口。它適用於語言選擇器,一旦選擇了語言,用戶將留在頁面(EN)或重定向到法國站點(FR)。event.preventdefault僅在Firefox中不起作用

問題是,它不能在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> 

人有什麼想法?

在此先感謝

+8

而這是'preventDefault()'在哪裏?無論如何,在IE和Chrome中,事件對象是全局的,在Firefox中你必須將它作爲參數傳遞,這很可能是問題,但是看看代碼,它並不立即顯示它應該傳遞到哪裏,它被使用了? – adeneo

+0

對不起,錯誤指向插件文件(reveal.js)。這裏是該文件中的代碼片段。 (函數($){(document).on(「click」,'a [data-reveal-id]',function(e){event.preventDefault(); var modalLocation = $(this))。 attr('data-reveal-id'); $('#'+ modalLocation).reveal($(this).data()); }); – user127181

回答

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) { < -

// change: 
event.preventDefault(); 
// to: 
e.preventDefault(); 

或更改參數名稱eventfunction(event) < -

相關問題