HTML(不应更改)
<div style="border:1px solid red;width:200px;">
<div class="wpsc_categorisation_group">
<ul class="wpsc_categories wpsc_top_level_categories">
<li><a href="link1">main link 1</a>
<ul>
<li><a>test 1</a></li>
<li><a>test 2</a></li>
<li><a>test 3</a></li>
</ul>
</li>
</ul>
<div class="clear_category_group"></div>
</div>
<div class="wpsc_categorisation_group">
<ul class="wpsc_categories wpsc_top_level_categories">
<li><a href="link2">main link 2</a>
<ul>
<li><a>test 1</a></li>
<li><a>test 2</a></li>
<li><a>test 3</a></li>
</ul>
</li>
</ul>
<div class="clear_category_group"></div>
</div>
</div>
CSS
div.wpsc_categorisation_group ul li {position:relative;}
div.wpsc_categorisation_group ul li ul {display:none;}
ul.wpsc_top_level_categories {padding-bottom:0 !important;}
ul.wpsc_top_level_categories li {}
ul.wpsc_top_level_categories li:hover {}
ul.wpsc_top_level_categories li ul li a span {background:none !important;}
span.collapse-arrow {cursor:pointer;background:red;width:10px;height:9px;float:right;margin-top:5px;}
的jQuery
$('div.wpsc_categorisation_group ul li ul').slideUp().hide();
$('.wpsc_categories').on('click', 'a', function(e) {
e.preventDefault(); // Prevent the Default Action
if (e.target.className == 'collapse-arrow') { // Trigger only
// If clicked on span
$(this).closest('ul').find('ul').slideToggle();
}
});
$('div.wpsc_categorisation_group ul li a').append('<span class="collapse-arrow"> </span>');
这是我的小提琴http://jsfiddle.net/nwbY7/23/
我非常需要任何帮助......: - (
答案 0 :(得分:0)
您的点击事件处理程序阻止浏览器执行通常使用&lt; a&gt;标签:转到新网址。
所有链接点击都会触发 e.preventDefault()
。如果您正在处理折叠箭头单击,则只需要这样做。这似乎对jsfiddle有用:
$('div.wpsc_categorisation_group ul li ul').slideUp().hide();
$('.wpsc_categories').on('click', 'a', function(e) {
if (e.target.className == 'collapse-arrow') { // Trigger only
// If clicked on span
$(this).closest('ul').find('ul').slideToggle();
e.preventDefault(); // Prevent the Default Action
}
});
$('div.wpsc_categorisation_group ul li a').append('<span class="collapse-arrow"> </span>');
请注意,我所做的只是将e.preventDefault()
移到if
区块内。
答案 1 :(得分:0)
谢谢大家,我让它上班....唯一的问题是我希望加号在折叠时更改减号。
此处的工作示例http://jsfiddle.net/nwbY7/25/
HTML
<div style="border:1px solid red;width:200px;">
<div class="wpsc_categorisation_group">
<ul class="wpsc_categories wpsc_top_level_categories">
<li><a href="link1">main link 1</a>
<ul class="wpsc_second_level_categories">
<li><a>test 1</a></li>
<li><a>test 2</a></li>
<li><a>test 3</a></li>
</ul>
</li>
</ul>
<div class="clear_category_group"></div>
</div>
<div class="wpsc_categorisation_group">
<ul class="wpsc_categories wpsc_top_level_categories">
<li><a href="link2">main link 2</a>
<ul class="wpsc_second_level_categories">
<li><a>test 1</a></li>
<li><a>test 2</a></li>
<li><a>test 3</a></li>
</ul>
</li>
</ul>
<div class="clear_category_group"></div>
</div>
</div>
CSS
span.CatExpander {float:right;cursor:pointer;}
.wpsc_second_level_categories {display:none;}
的Javascript
//<![CDATA[
(function($)
{
$(document).ready(function()
{
$(".wpsc_top_level_categories > li:has(ul)").prepend("<span class=\"CatExpander\">[+]</span>");
$(".CatExpander").click(function()
{
$(this).toggleClass("CatExpanded").siblings("ul").slideToggle(500);
return false;
}).eq(0).addClass("CatExpanded").end().slice(1).siblings("ul").hide();
});
})(jQuery);
//]]>