使用2个或更多链接使DIV可单击

时间:2015-06-19 11:07:14

标签: javascript jquery html

我对jQuery有些困难。我需要ma divsection可点击(添加到块元素的链接),我已经实现了一些代码

$(document).ready(function() {
        $(".clickable").click(function(){
            window.location=$(this).find("a.slide-link").attr("href");
            return false;
        });
    });

但是当块有2个或更多链接时 - 此块中的链接无法正常工作。始终重定向到a.slide-link网址。

我如何解决这个问题? 谢谢!

更新

<section class="clickable">
    <div>
        <div class="description">
            <ul>
                <li>Lorem ipsum</li>
                <li>Lorem ipsum</li>
                <li>Lorem ipsum</li>
                <li>Lorem ipsum <a href="http://url1.com">here</a></li>
            </ul>
        </div>
        <a class="slide-link" href="http://url2.com">URL2</a>
    </div>
</section>

4 个答案:

答案 0 :(得分:0)

初始问题的初步答案

如果是多个匹配,$(this).find(“a.slide-link”)给出节点数组,因此 .attr 不起作用。

如果要重定向到第一个链接,请将代码更新为

$($(this).find("a.slide-link")[0])

更新了更新问题的答案

由于事件冒泡,您在该部分内的锚点将无效。供参考 - http://www.w3schools.com/jsref/event_bubbles.asp

你要做的就是停止泡泡事件。为此,在你的js中添加这个

$(".clickable a").click(function(event){
     event.stopPropagation();
});

答案 1 :(得分:0)

如果它只是您要在该部分中工作的链接,而不是单击该部分本身,那么您可以使用以下内容:

$(document).ready(function() {
    $(".clickable a.slide-link").click(function(){
        window.location=$(this).attr("href");
        return false;
    });
});

虽然只是你计划做一些事情,而不仅仅是去那个地址,但在这种情况下,上面的代码与没有代码相同......

如果您希望外部区域本身就是一个链接,那么您最好使用<a>标记,并将其设置为display: block。由于显而易见的原因,您无法在其他锚标记中嵌套锚标记。

答案 2 :(得分:0)

我找到了答案

class Person(name: String, surname: String) {
  def fullname = name + " " + surname
  def header = "Dear " + name  
}

class Employee(val aname: String,
              val asurname: String,
              val role: String) extends Person(aname, asurname) {
  }

答案 3 :(得分:-1)

您可以按其href值$("a[href='www.myurl.com'")

选择锚点

在此处阅读有关选择器的更多信息。 javascript使用与常规CSS相同的选择器。鉴于浏览器支持选择器。 http://www.w3schools.com/cssref/css_selectors.asp