Javascript 具有相同类的嵌套元素上的jquery单击事件

Javascript 具有相同类的嵌套元素上的jquery单击事件,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我是jquery的新手。我用相同的名字嵌套了li。我想根据单击的li级别设置类打开时div的左侧位置。但当我在li中单击时,它占据了第一个位置 这是我的密码 $(“.child”)。在(“单击”,函数(){ var l=$(this).parents('ul').length var a=101*l; $(“.open”).css({ “左”:“-+a+”% }) }) 您必须禁用冒泡 $(".child").on("click", function(event) {

我是jquery的新手。我用相同的名字嵌套了
li
。我想根据单击的
li
级别设置类打开时
div
的左侧位置。但当我在
li
中单击时,它占据了第一个位置

这是我的密码


$(“.child”)。在(“单击”,函数(){ var l=$(this).parents('ul').length var a=101*l; $(“.open”).css({ “左”:“-+a+”% }) })
您必须禁用冒泡

$(".child").on("click", function(event) {
    event.preventDefault(); // diasble default action
    event.stopPropagination();  // disable bubbling to parent event
    var l = $(this).parents('ul').length
    var a = 101*l;
    $(".open").css({
      "left": "-" + a + "%"
    })
  })

未测试

您必须禁用冒泡

$(".child").on("click", function(event) {
    event.preventDefault(); // diasble default action
    event.stopPropagination();  // disable bubbling to parent event
    var l = $(this).parents('ul').length
    var a = 101*l;
    $(".open").css({
      "left": "-" + a + "%"
    })
  })

未测试

问题是,当您单击内部li时,两个li中都发生了单击,您可以在事件内部使用StopperPagation来防止这种情况发生

问题是,当您单击内部li时,两个li中都发生了单击,您可以在事件内部使用stopPropagation来防止

您可以使用
event.stopPropagation()停止传播。
我添加了一个
console.log()
,以便查看单击的内容

$(.child”)。在(“单击”上,函数(事件){
event.stopPropagation();
var l=$(this).parents('ul').length
var a=101*l;
log(“单击:”+$(this.find(“>a”).text());
$(“.open”).css({
“左”:“-+a+”%
})
})


您可以使用
event.stopPropagation()停止传播。
我添加了一个
console.log()
,以便查看单击的内容

$(.child”)。在(“单击”上,函数(事件){
event.stopPropagation();
var l=$(this).parents('ul').length
var a=101*l;
log(“单击:”+$(this.find(“>a”).text());
$(“.open”).css({
“左”:“-+a+”%
})
})


您想将此应用于树中的所有子级还是仅应用于子级?检查此项。您想将此项应用于树中的所有子项还是仅应用于子项?看看这个。