stopPropagation onclick在嵌套列表中不起作用

时间:2011-08-05 06:01:37

标签: javascript events onclick event-bubbling stoppropagation

我有以下功能在嵌套列表中单击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")'>

我尝试了返回,因为它是我在另一个答案中找到但它仍然无法正常工作。非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

stopPropagation方法位于event对象中,您不能在字符串上调用它。你也错过了括号,所以它只是从字符串中获取stopPropagation属性(返回undefined)并丢弃它。

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

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

在函数中使用事件对象:

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