2017-10-16 37 views
-2

我有一個radiobutton的鏈接中:重定向點擊如果JavaScript被禁用,否則檢查孩子的單選按鈕

<label class="dd--option"> 
    <a href="someURL" class="dd--noscript--link"> 
     <input name="dd_radio" type="radio" class="dd--radio dd--radio--js" checked /> 
     <span class="dd--label"> 
      <img class="dd--label--image" src="http://90.0.0.91/show.php/swatch/23080/black"/> 
      <span class="dd--label--text">Black</span> 
     </span> 
    </a>      
</label> 

我要實現以下目標:

  • 如果JavaScript被禁用在瀏覽器中,我想重定向到anchor taghrefattribute中給出的鏈接。
  • 如果啓用了JavaScript,它不應該在任何地方重定向。它應該只檢查radiobutton

我能否實現它?如果是,如何?

+0

因此,將href添加到錨點並使用JavaScript取消點擊。 – epascarello

+1

只需編寫一個腳本,可以在啓用JS時執行您想要的操作。如果JS被禁用,它將被忽略,並且點擊錨點將會跟隨鏈接。 – Barmar

+0

@Barmar我把#作爲佔位符在這裏。 –

回答

1

不是100%肯定,如果上<input>的點擊會自動泡沫事件高達每一個瀏覽器父<a>,但即便如此,這應該這樣做:

$('.dd--noscript--link').on('click', function(e) { 
    e.preventDefault(); 
}); 

由於@Barmar在評論中提到,禁用了JS,href="#"不會導致瀏覽器加載新頁面。

+0

他添加了一條評論,指出'href =「#」'只是作爲問題中的佔位符,真正的代碼將在那裏有一個URL。我編輯了這個問題來反映這一點。 – Barmar

1

在單選按鈕上添加一個Javascript事件處理程序,並使用event.stopPropagation()

$(".dd--radio--js").click(function(e) { 
    e.stopPropagation(); 
}); 

如果使用Javascript功能,該功能將被執行,並stopPropagation()將防止點擊冒泡到錨,所以它不會跟隨鏈接。

如果Javascript被禁用,這段代碼將不會被執行,所以點擊會彈出到錨點,並且鏈接將被跟蹤。

+0

這是有效的,但如果你有任何其他可點擊元素與''('','','jmorganmartin

+0

@jmorganmartin這些元素沒有任何默認的點擊操作,所以只有當您添加點擊處理程序時纔有必要。你的答案可能更好,因爲它獨立於內部。 – Barmar

相關問題