我正在动态创建目录。
层次结构级别:
Parent Div
儿童分组
为此我动态创建div。
然后我为这些div分配保证金。
父级:无利润
儿童分组: - margin-left :15px;
Grand Children Div: - margin-left :35px;
所以我能够动态创建目录。
问题:
我创建了多个父div,并根据层次结构创建了子div。 但是如果我在第一个父div上应用click事件,那么该事件也会在其他父div上应用,因为我在课堂上添加了click事件。
在此次点击中,我遇到slideToggle().
中的问题
因为我正在使用类,因此它也被应用于其他类。
示例:
$('main_div').haml(['%div.g', {id:'g_' + i', name: i}, Parent Div]);//class = 'g'
$('main_div').haml(['%div.g1', {id:'g_' + i, name: i, style:'**margin-left: 15px**;'}, Children Div]);//class = 'g1'
$('main_div').haml(['%div.g2', {id:'g_' + i, name: i, style:'**margin-left: 35px**;'}, Grand Children Div]);//class = 'g2'
在这个div 'i'值来自AJAX GET帮助下的数据库。
那么我应该对slideToggle()
做些什么改变:在这里我只想切换只点击父div的子女?
有任何提示/建议吗?
参考代码:
$('#main_div').on('click','.g', function(){
$('#main_div').find('.g1,.g2').slideToggle();
});
答案 0 :(得分:2)
如果我理解正确,slideToggle()是所有父母div的点击事件?在功能上你可以使用'this'变量。
$(this).find(...some selector for child divs...').slide..
请显示点击事件的代码?
答案 1 :(得分:2)
试试这个:
$('#main_div').on('click','.g', function(){
$(this).find('.g1,.g2').slideToggle();
});
当jQuery调用你的点击处理程序时,它会将this
设置为被点击的项目,即.g
元素,因此只能使用{{1}将.find()
应用于该项目的后代。 }
答案 2 :(得分:0)