2013-07-12 36 views
1

我有一個登錄按鈕,它是一個鏈接。 當我點擊它時,它會滑下一個包含登錄窗體的小窗口。jQuery登錄按鈕正在打開登錄窗口,但如果javascript關閉

現在,我想要做的是,如果瀏覽器不支持JavaScript代碼(JS離線),那麼它將轉到鏈接。

我需要找到一種方法來禁用點擊按鈕ID的鏈接,JS會做到這一點,當JS關閉時,它只會像平常一樣傳遞。

這是我的代碼:

$(document).ready(function() { 
     $("#loginToggler").click(function() { 
      setTimeout(function() { 
       $("#login_block").slideToggle("slow"); 
      }, 100); 
     }); 
     $("#closeLogin").click(function() { 
      $("#login_block").slideUp("fast"); 
     }); 
    }); 

      <li id="last-child"><a href="#"><div id="login"></div></a></li> 

我能做些什麼有做到這一點?

+2

對於禁用JavaScript的那一個人,爲什麼不讓表單總是可見並隱藏然後用JavaScript代替動畫呢? – j08691

+0

我寧願將它們發送到實際的登錄頁面,而是我的設計如何構建。 –

+1

您可以使用

回答

2
  1. 請登錄正常的超級鏈接
  2. 在你的JQuery,更改超鏈接的href屬性,使其不再鏈接到任何
  3. 添加在您的幻燈片輸出功能

你可以使用.attr函數使其不會直接鏈接到JavaScript中的登錄頁面。所以它會像...

<li id="last-child"><a href="loginpageurl" id="loginbutton"><div id="login"></div></a></li> 

$(document).ready(function() { 
    $("#loginbutton").attr("href","#"); 
    $("#loginToggler").click(function() { 
     setTimeout(function() { 
      $("#login_block").slideToggle("slow"); 
     }, 100); 
    }); 
    $("#closeLogin").click(function() { 
     $("#login_block").slideUp("fast"); 
    }); 
}); 

根據需要調整標識符。

所以如果沒有JavaScript,它將表現得像一個正常的鏈接。如果存在,鏈接將無處可用,滑出功能將啓用。

+0

不起作用。如果我沒有記錯,我認爲Attr被重新命名爲別的東西? –

+0

http://api.jquery.com/attr/#attr-attributeName-value 不是這樣嗎? – Paarth

+1

這工作完美,謝謝 –

1

將實際鏈接放入href="",並將onclick="return false;"添加到a標記。

即:

<li id="last-child"><a href="/login.php" onclick="return false;"><div id="login"></div></a></li> 

的 「返回false」 告訴瀏覽器不跟隨鏈接,如果瀏覽器支持JavaScript。如果JavaScript未啓用,則「onclick」事件不會觸發,「返回false」不起作用。

+0

如果我將返回false,登錄將不會出現,因爲我正在返回js,我認爲它沒有打開。 –

+0

那麼在這種情況下,您可以創建一個函數來顯示您的登錄彈出窗口並在返回false之前在onclick中調用它。 –

0

您可以使用e.preventDefault(),並有您的href的登錄鏈接到登錄頁面。

如果啓用javascript:

用戶點擊鏈接上的login_block將向下滑動,然後e.preventDefault()被調用,以防止使用中的href位置。

如果禁止javascript:

的HREF位置將被使用,並且用戶將被帶到登錄頁。

$(document).ready(function() { 
    $("#loginToggler").click(function() { 
      $("#login_block").slideToggle("slow"); 
      e.preventDefault(); 
    }); 
    $("#closeLogin").click(function() { 
      $("#login_block").slideUp("fast"); 
    }); 
}); 

<li id="last-child"> 
    <a href="http://www.Somesite.com/Login"> 
      <div id="login"></div> 
    </a> 
</li>