Посмотрите на JSFiddle: https://jsfiddle.net/0fyxws79/2/
Вам просто нужно изменить селекторы, прежде чем применять событие нажатия. a) Ранее выбранная кнопка была выбрана в отношении элемента body, а на теле больше не было событий, поэтому вы не смогли выяснить, работает ли stopPropagation.
b) Теперь кнопка найдена с уважение к заголовку таблицы, к которому прикреплено событие сортировки. И всякий раз, когда мы нажимаем на кнопку, присутствующую в заголовке таблицы, она останавливает соответствующие события селекторов.
01) Fiddle: здесь событие click прикреплено к телу HTML просто для того, чтобы вы знали, и ваш код из вопроса работает здесь но по-другому. https://jsfiddle.net/0fyxws79/1/
02) Скрипка: здесь событие сортировки уже присутствовало в заголовке таблицы, и это было то, что нам нужно предотвратить при нажатии кнопки. Это работает здесь https://jsfiddle.net/0fyxws79/2/
03) Скрипка: где вы можете увидеть разницу между элементами кнопок, которые присутствовали во время разработки, с элементами stopPropagation и кнопками, которые были добавлены динамически с остановкой распространения.
https://jsfiddle.net/uk4ym30r/
$(document).ready( function () {
$('#example').DataTable();
$('#example thead tr th').each(function(i, e) {
$(this).append('<button id="test-button" style="margin-left: 5px; margin-right: 5px;">Test Button</button>');
});
$('th[class^="sorting"]').on('click', '#test-button', function(event) {
alert('test');
event.stopPropagation();
});
});