2017-10-16 11 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

相关问题