如何取消绑定具有特定 class 的 child 元素
How to unbind click on element with child that has particular class
我有很多基本的手风琴风格元素,点击它们就会陶醉于它们的内容。但是,其中一些手风琴包含一个特定的 child 元素 (),当存在时,我希望在整个手风琴元素上禁用手风琴效果。因此,如果页面有 10 个手风琴元素,其中 5 个包含 child 元素,那么后面这些手风琴元素应该是静态的——即没有 slideToggle。
我一直在尝试将我的代码包装在条件中,这样 if parent 确实 not 有child 和 class="normal" 然后它执行手风琴代码 else 它取消绑定点击来自 parent.
的函数
function team () {
if (!$('.accordion').children().hasclass('.normal')) {
$('.accordion').click(function (e) {
var $textContent = $(this).find('.content');
$('.content').not($textContent).slideUp('slow');
$textContent.slideToggle('slow');
});
} else {
$(this).unbind('click');
}
}
我有一个可以正常工作的fiddle基本手风琴。但是,我一定遗漏了一些东西,因为当我尝试上面的代码时它不起作用。具体来说,我被告知 if (!$('.accordion').children().hasclass('.normal'))
不是函数
尝试
$('.content').hide();
$('.accordion').off('click').on('click', function (e) {
if(!$(this).find('.normal').length) { // check the condition here
var $textContent = $(this).find('.content');
$('.content').not($textContent).slideUp('fast');
$textContent.slideToggle('slow');
}
});
我有很多基本的手风琴风格元素,点击它们就会陶醉于它们的内容。但是,其中一些手风琴包含一个特定的 child 元素 (),当存在时,我希望在整个手风琴元素上禁用手风琴效果。因此,如果页面有 10 个手风琴元素,其中 5 个包含 child 元素,那么后面这些手风琴元素应该是静态的——即没有 slideToggle。
我一直在尝试将我的代码包装在条件中,这样 if parent 确实 not 有child 和 class="normal" 然后它执行手风琴代码 else 它取消绑定点击来自 parent.
的函数function team () {
if (!$('.accordion').children().hasclass('.normal')) {
$('.accordion').click(function (e) {
var $textContent = $(this).find('.content');
$('.content').not($textContent).slideUp('slow');
$textContent.slideToggle('slow');
});
} else {
$(this).unbind('click');
}
}
我有一个可以正常工作的fiddle基本手风琴。但是,我一定遗漏了一些东西,因为当我尝试上面的代码时它不起作用。具体来说,我被告知 if (!$('.accordion').children().hasclass('.normal'))
不是函数
尝试
$('.content').hide();
$('.accordion').off('click').on('click', function (e) {
if(!$(this).find('.normal').length) { // check the condition here
var $textContent = $(this).find('.content');
$('.content').not($textContent).slideUp('fast');
$textContent.slideToggle('slow');
}
});