【问题标题】:stopPropagation onclick not working in nested liststopPropagation onclick 在嵌套列表中不起作用
【发布时间】:2011-08-05 06:01:37
【问题描述】:

我具有以下功能,可以在单击嵌套列表中的 ul 时交换图像,但它不会停止冒泡列表..

function bimageswap (step) {
    step.stopPropagation;
    realstep = parseInt(step) + 1;
    nextsteps = realstep + 1;
    for (iss = nextsteps;iss <= 5; iss++) {
        document.getElementById("step" + iss).className = 'step' + iss;
        alert(iss);
    }
    document.getElementById("step" + realstep).className = 'step' + realstep + 'a';
/*$("#step2").css( 'background-image', 'images/adtl_prodimg/discs/step1_.png');*/
    return false;
}

它是这样称呼的:

<ul onclick='return bimageswap("4")'>

我尝试了退货,因为这是我在另一个答案中找到的,但它仍然不起作用。我将不胜感激任何帮助谢谢!

【问题讨论】:

  • step.stopPropagation; - 您是否仅在此处或您的代码中错过了函数名称后的 ()?

标签: javascript events onclick event-bubbling stoppropagation


【解决方案1】:

stopPropagation 方法在event 对象中,您不能在字符串上调用它。您还缺少括号,因此它只会从字符串中获取stopPropagation 属性(返回undefined)并丢弃它。

将事件对象从事件处理程序发送到函数:

<ul onclick="bimageswap(event, '4');">

在函数中使用事件对象:

function bimageswap(event, step) {
  event.stopPropagation();
  ...

【讨论】:

    最近更新 更多