$(function() {
// Wait for the `shiny:connected` event, so that the `Shiny` JS object exists
$(document).on('shiny:connected', function(event) {
// Unbind all inputs
Shiny.unbindAll();
// Extend the binding and edit its content
// Access the binding registry
$.extend(Shiny
.inputBindings
.bindingNames['shiny.actionButtonInput']
.binding, {
reset: function(el) {
$(el).data('val', 0);
},
subscribe: function(el, callback) {
$(el).on('click.actionButtonInputBinding', function(e) {
var $el = $(this);
var val = $el.data('val') || 0;
$el.data('val', val + 1);
callback();
});
$(el).on('change.actionButtonInputBinding', function(e) {
debugger;
callback();
});
}
});
// Apply the new changes with Shiny.bindAll()
Shiny.bindAll();
});
$('#button1').on('click', function() {
var $obj = $('#button2');
var inputBinding = $obj.data('shiny-input-binding');
var val = $obj.data('val') || 0;
inputBinding.setValue($obj, val + 10);
$obj.trigger('change');
});
$('#reset').on('click', function() {
var $obj = $('#button2');
var inputBinding = $obj.data('shiny-input-binding');
inputBinding.reset($obj);
$obj.trigger('change');
});
});