jQuery stopPropagation无法正常工作!

时间:2011-06-06 03:36:29

标签: javascript jquery events javascript-events

我只是完全难过,我查看了很多类似的问题,但我无法弄清楚为什么这个点击事件会继续传播。

以下是代码:

$("#view-radio").buttonset().bind('click', function(e) {
            redraw(Testimonials);
            e.stopPropagation();
        });

这是单选按钮

<div id="view-radio" class="i-obj buttonset">
  <input type="radio" id="gridradio" name="view-radio" checked="checked" value="grid" />
    <label for="gridradio"> <img src="http://SwolePersonalTraining.com/beta/wp-content/themes/striking/images/gridview.jpg" class="icon">Grid View</label>
 <input type="radio" id="listradio" name="view-radio" value="list" />
    <label for="listradio"><img src="http://SwolePersonalTraining.com/beta/wp-content/themes/striking/images/listview.jpg" class="icon">List View</label>
</div>

您可以在此处找到正常运行的页面:http://swolepersonaltraining.com/beta/?page_id=380

以下是完整的代码:http://swolepersonaltraining.com/beta/wp-content/themes/striking/js/custom/custom_testimonial.js?ver=3.1.3

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我不能发誓,因为它很难在你的实时网站上进行测试,但我认为发生的事情是你绑定click div的view-radio事件而不是两者中的每一个里面的单选按钮。

我会尝试类似的事情:

$("#view-radio").buttonset().     // Turn radio buttons of the div in a buttonset 
    find('input').bind('click',   // Bind the click event of each of the two radios
    ....

修改

是的!有用! http://jsfiddle.net/marcosfromero/TDsrj/

不需要stopPropagation(阅读其他答案以了解原因)。