如何根据单击Jquery的父级打开链接
How to open links based on which parent is clicked Jquery
我正在设计我的FAQ页面,我在段落标记中使用了问题作为链接和答案。当它的问题链接被点击时,我想显示它各自问题的答案,我已经编码到现在,它工作得很完美。
我的问题是我有一些答案,我也使用了链接。所以当我点击这样的问题链接时,它会显示它的答案(好),但当我点击答案中的链接时,会隐藏我不想要的整个答案。我想在新的选项卡中打开那个链接,当我再次点击问题时,它应该会隐藏那个答案。
HTML
<div class="pageContents">
<div class="list_Q" id="Q3">
<a class="que" href="#">
<h5><strong>Q) </strong>
How can I test EPX before I buy it?
</h5>
</a>
<p id="answers-pop"><strong>A) </strong>Demo link for EPX is <a target="_blank" href="http://google.com/" class="link_read">Here </a></p>
</div>
<div class="list_Q" id="Q15">
<a class="que" href="#">
<h5>
<strong>Q) </strong>How can I create Endicia account I'd?
</h5>
</a>
<p id="answers-pop"><strong>A) </strong>Visit <a target="_blank" href="http://www.endicia.com/" class="link_read">Endicia</a> for
creating Endicia account.
</p>
</div>
</div>
CSS
#ans-pop {
display: none;
}
.list_Q {
BORDER-BOTTOM: #333333 1px dotted;
MARGIN-BOTTOM: 5px;
}
.list_Q H5 {
PADDING-BOTTOM: 5px;
PADDING-LEFT: 5px;
PADDING-RIGHT: 5px;
MARGIN-BOTTOM: 0px;
BACKGROUND: #ededed;
COLOR: #d80d0d;
FONT-SIZE: 12px;
FONT-WEIGHT: normal;
PADDING-TOP: 5px;
}
.list_Q P {
PADDING-BOTTOM: 5px;
PADDING-LEFT: 5px;
PADDING-RIGHT: 5px;
COLOR: #333333;
FONT-SIZE: 12px;
PADDING-TOP: 5px;
}
Jquery
$('.list_Q').click(function () {
var status = $(this).attr('id');
var fix = '#' + status + ' #ans-pop';
if ($(fix).is(":not(:visible)")) {
$(fix).show(500);
} else {
$(fix).hide(500);
}
return false;
});
小提琴
只需检查target
是否不是a
标签,如下所示:
if ($(event.target).is('a')) {
return;
}
http://jsfiddle.net/P45bE/129/
更新
在下面的代码中,关闭打开的问题,同时显示单击的。
使用$('.ans-pop:visible').hide(500);
隐藏打开的答案
重要我将id="answers-pop"
替换为class="answers-pop"
,因为id
属性必须是唯一的。尤其是在这种情况下。
http://jsfiddle.net/P45bE/132/
在链接上添加一个类,并在单击链接时停止事件传播。
<a target="_blank" class="test" href="http://www.endicia.com/" class="link_read">Endicia</a>
$('.test').click(function (e){
e.stopPropagation();
});
演示
我想你想要这个,试着用这个替换你的代码
$('.list_Q a').click(function (){
var status = $(this).parent().attr('id');
在要单击的锚点中使用e.stopPropagation();
:
$("a[href!=#]").click(function (e) {
e.stopPropagation();
});
演示
我会这样做:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="faq">
<a href="#answer_1" class="question"><h5><strong>Q) </strong> Question number 1 </h5></a>
<div id="answerswer_1" class="answerswer">
<p><strong>A)</strong> Answer, with an <a target="_blank" href="http://google.com/" class="link_read">external link</a>.</p>
</div>
</div>
<div class="faq">
<a href="#answer_2" class="question"><h5><strong>Q) </strong>Here's another question</h5></a>
<div id="answerswer_2" class="answerswer">
<p><strong>A)</strong> Another answer, with another <a target="_blank" href="http://google.com/" class="link_read">external link</a>.</p>
</div>
</div>
$('.question').on('click', function(){
var href = $(this).attr('href');
$(href).toggle();
return false;
});
.answer {
display:none;
}
- 由于您使用的是链接,我添加了答案的ID作为href,因此即使没有JS,问题和答案也会链接起来
- 在jQuery中,从链接中获取href,并用于选择和显示/隐藏答案div
- 外部链接正常工作,因为jQuery代码不会以任何方式影响它们
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 单击页面上的链接后高度发生变化
- 将纯文本URL转换为可单击链接
- python-selenium-点击上升链接
- 一点javascript元编程&可链接的设置器
- ng视图外的链接重定向到ng视图内的页面
- 如何调用“;链接_;在onclick事件上使用Javascript
- 链接所有<a>Meteor
- 哪一个更好?存储在根文件或直接指向JS的链接上的JavaScript
- 对可折叠菜单中根链接的效果/操作不活动 - 只是效果 - jQuery
- 如何在根页面上突出显示索引导航链接
- 用完整的url替换根相对链接
- 在PhoneGap中打开浏览器中的链接(使用非本地index.html根)