这是为了自定义dokuwiki,我有这个代码(https://www.dokuwiki.org/tips:clicknshow),我想“反向”。因此,单击标题将关闭所有其他标题,从而使打印更清晰。
jQuery(function(){
jQuery('h2,h3,h4,h5,h6').css('cursor','pointer').click(function(){
var tag=this.tagName,
tagIdx=parseInt(tag.match(/\d/)[0],10),
clicknshow=jQuery(this).data('clicknshow') || false,
fname=clicknshow?'show':'hide';
jQuery(this).data('clicknshow',!clicknshow).nextAll().each(function(){
var jqNode=jQuery(this);
if (jqNode.is(':header')){
var hIdx=parseInt(this.tagName.match(/\d/)[0],10);
if (hIdx<=tagIdx) { return false; }
jqNode.data('clicknshow',!clicknshow);
}
jqNode[fname]();
});
});
});
经过一天的尝试后,我需要意识到我根本不知道jscript,我需要帮助。 您可以在此处编辑一部分工作代码。 http://jsfiddle.net/W35ny/
答案 0 :(得分:1)
尝试this one:
$("h3").click(function(){
$(this).siblings("div").hide();
$(this).next().show();
});
转到第二个问题this one(如果再次点击则显示所有问题):
$("h3").click(function(){
if($(this)[0].getAttribute("DivShown")== "true")
{
$(this).siblings("div").show();
$(this)[0].setAttribute("DivShown","false");
}
else
{
$(this).siblings("div").hide();
$(this).next().show();
$(this)[0].setAttribute("DivShown","true");
}
});
*这段代码看起来非常糟糕,只是解决这个问题的一种棘手方法。
这特别适用于html元素的顺序
(所有<h3>
和<div>
都是兄弟,所有<div>
都是<h3>
的文字)
所以你隐藏所有兄弟<div>
然后显示当前<h3>
答案 1 :(得分:0)
试试这个
$(function () {
$("h3[class^=sectionedit]").css('cursor', 'pointer').click(function () {
var isVisible = $(this).next(".level3").is(":visible");
$("h3[class^=sectionedit]").next(".level3").hide();
(isVisible) ? $(this).next(".level3").hide() : $(this).next(".level3").show();
});
});