mirror of
https://github.com/DataTables/DataTables.git
synced 2024-12-01 13:24:10 +01:00
1effb64cfa
On line 605, column.sTitle is set to the TH's innerHTML. On line 1816, column.sTitle is compared with cell.html(). If you have child elements with event handlers on them inside the TH, these are not the same in IE8 (see https://gist.github.com/simonbrent/933e552739477f4be3ab#file-test-html) As a result, the check on 1816 fails, the contents of the cell is replaced, and the event handlers are removed. Comparing instead with cell[0].innerHTML fixes this issue.
130 lines
3.0 KiB
JavaScript
130 lines
3.0 KiB
JavaScript
|
|
/*global SyntaxHighlighter*/
|
|
SyntaxHighlighter.config.tagName = 'code';
|
|
|
|
$(document).ready( function () {
|
|
if ( ! $.fn.dataTable ) {
|
|
return;
|
|
}
|
|
var dt110 = $.fn.dataTable.Api ? true : false;
|
|
|
|
// Work around for WebKit bug 55740
|
|
var info = $('div.info');
|
|
|
|
if ( info.height() < 115 ) {
|
|
info.css( 'min-height', '8em' );
|
|
}
|
|
|
|
var escapeHtml = function ( str ) {
|
|
return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
};
|
|
|
|
// css
|
|
var cssContainer = $('div.tabs div.css');
|
|
if ( $.trim( cssContainer.find('code').text() ) === '' ) {
|
|
cssContainer.find('code, p:eq(0), div').css('display', 'none');
|
|
}
|
|
|
|
// init html
|
|
var table = $('<p/>').append( $('table').clone() ).html();
|
|
$('div.tabs div.table').append(
|
|
'<code class="multiline language-html">\t\t\t'+
|
|
escapeHtml( table )+
|
|
'</code>'
|
|
);
|
|
//SyntaxHighlighter.highlight({}, $('#display-init-html')[0]);
|
|
|
|
// Allow the demo code to run if DT 1.9 is used
|
|
if ( dt110 ) {
|
|
// json
|
|
var ajaxTab = $('ul.tabs li').eq(3).css('display', 'none');
|
|
|
|
$(document).on( 'init.dt', function ( e, settings ) {
|
|
if ( e.namespace !== 'dt' ) {
|
|
return;
|
|
}
|
|
|
|
var api = new $.fn.dataTable.Api( settings );
|
|
|
|
var show = function ( str ) {
|
|
ajaxTab.css( 'display', 'block' );
|
|
$('div.tabs div.ajax code').remove();
|
|
$('div.tabs div.ajax div.syntaxhighlighter').remove();
|
|
|
|
// Old IE :-|
|
|
try {
|
|
str = JSON.stringify( str, null, 2 );
|
|
} catch ( e ) {}
|
|
|
|
$('div.tabs div.ajax').append(
|
|
'<code class="multiline language-js">'+str+'</code>'
|
|
);
|
|
|
|
// This can be really slow for large builds
|
|
setTimeout( function () {
|
|
SyntaxHighlighter.highlight( {}, $('div.tabs div.ajax code')[0] );
|
|
}, 500 );
|
|
};
|
|
|
|
// First draw
|
|
var json = api.ajax.json();
|
|
if ( json ) {
|
|
show( json );
|
|
}
|
|
|
|
// Subsequent draws
|
|
api.on( 'xhr.dt', function ( e, settings, json ) {
|
|
show( json );
|
|
} );
|
|
} );
|
|
|
|
// php
|
|
var phpTab = $('ul.tabs li').eq(4).css('display', 'none');
|
|
|
|
$(document).on( 'init.dt.demoSSP', function ( e, settings ) {
|
|
if ( e.namespace !== 'dt' ) {
|
|
return;
|
|
}
|
|
|
|
if ( settings.oFeatures.bServerSide ) {
|
|
if ( $.isFunction( settings.ajax ) ) {
|
|
return;
|
|
}
|
|
$.ajax( {
|
|
url: '../resources/examples.php',
|
|
data: {
|
|
src: settings.sAjaxSource || settings.ajax.url || settings.ajax
|
|
},
|
|
dataType: 'text',
|
|
type: 'post',
|
|
success: function ( txt ) {
|
|
phpTab.css( 'display', 'block' );
|
|
$('div.tabs div.php').append(
|
|
'<code class="multiline language-php">'+txt+'</code>'
|
|
);
|
|
SyntaxHighlighter.highlight( {}, $('div.tabs div.php code')[0] );
|
|
}
|
|
} );
|
|
}
|
|
} );
|
|
}
|
|
else {
|
|
$('ul.tabs li').eq(3).css('display', 'none');
|
|
$('ul.tabs li').eq(4).css('display', 'none');
|
|
}
|
|
|
|
// Tabs
|
|
$('ul.tabs').on( 'click', 'li', function () {
|
|
$('ul.tabs li.active').removeClass('active');
|
|
$(this).addClass('active');
|
|
|
|
$('div.tabs>div')
|
|
.css('display', 'none')
|
|
.eq( $(this).index() ).css('display', 'block');
|
|
} );
|
|
$('ul.tabs li.active').click();
|
|
} );
|
|
|
|
|
|
|