我对jQuery有些困难。我需要ma div
或section
可点击(添加到块元素的链接),我已经实现了一些代码
$(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>
答案 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