jQuery stopPropagation не работает! - PullRequest
0 голосов
/ 06 июня 2011

Я просто полностью озадачен, я просмотрел много похожих вопросов, но не могу понять, почему это событие клика продолжает распространяться.

Вот код:

$("#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 Ответ

2 голосов
/ 06 июня 2011

Я не могу поклясться, потому что это сложно проверить на вашем сайте, но я думаю, что происходит то, что вы связываете событие click элемента 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 не требуется (прочитайте другие ответы, чтобы узнать, почему).

...