Discussion:
tablesorter fejl beskeder
(for gammel til at besvare)
scootergrisen
2013-08-11 03:06:39 UTC
Permalink
Jeg bruger tablesorter fra http://tablesorter.com/ til at lave
sorterbare <table> på min hjemmeside og det virker sådan set fint nok
men i min log får jeg en del fejl beskeder om at $ ikke er defineret.
Der bruges jquery hvilket jeg ikke kender så meget til.

Jeg får for eksempel de 3 fejl beskeder fra Javascript her :

1 : Uncaught ReferenceError: $ is not defined

2 : Uncaught TypeError: Cannot set
property 'characterEquivalents' of undefined

3 : TypeError: 'undefined' is not an object
(evaluating '$.tablesorter')

Koden er følgende ... kan i se hvad der er galt ?



<head>

<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="jquery.tablesorter.js"></script>

<script type="text/javascript">

$(function(){

$.tablesorter.characterEquivalents = {
"za" : "\u00e6;", // æ
"zb" : "\u00f8;", // ø
"zc" : "\u00e5;", // å
"ZA" : "\u00c6;", // Æ
"ZB" : "\u00d8;", // Ø
"ZC" : "\u00c5;" // Å
};

$('table').tablesorter({
widgets : ['zebra', 'columns'],
usNumberFormat : false,
sortReset : true,
sortRestart : true,
sortLocaleCompare : true,
ignoreCase : true
});
});

</script>

</head>
Jens Peter Karlsen
2013-08-11 08:09:29 UTC
Permalink
Prøv at deklarere $ som en variabel.

<script type="text/javascript">

var $
$(function(){


Regards Jens Peter Karlsen.
Post by scootergrisen
1 : Uncaught ReferenceError: $ is not defined
Martin
2013-08-12 05:57:32 UTC
Permalink
Post by scootergrisen
Jeg bruger tablesorter fra http://tablesorter.com/ til at lave
sorterbare <table> på min hjemmeside og det virker sådan set fint nok
men i min log får jeg en del fejl beskeder om at $ ikke er defineret.
Der bruges jquery hvilket jeg ikke kender så meget til.
1 : Uncaught ReferenceError: $ is not defined
2 : Uncaught TypeError: Cannot set
property 'characterEquivalents' of undefined
3 : TypeError: 'undefined' is not an object
(evaluating '$.tablesorter')
Koden er følgende ... kan i se hvad der er galt ?
Hat du andre scripts der overskriver jquery namespace?
Post by scootergrisen
<head>
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="jquery.tablesorter.js"></script>
<script type="text/javascript">
$(function(){
Ændre til

jQuery(function($) {

Så er du sikker på at jQuery ikke bliver overskrevet af andet
scootergrisen
2013-08-16 23:09:45 UTC
Permalink
Post by Martin
jQuery(function($) {
Så er du sikker på at jQuery ikke bliver overskrevet af andet
Jeg har prøvet med :
$(document).ready(function() {

Ligesom der står på hjemmesiden http://tablesorter.com/docs/ i deres
eksempler men det giver også fejl.
Martin
2013-08-21 09:13:11 UTC
Permalink
Post by scootergrisen
Post by Martin
jQuery(function($) {
Så er du sikker på at jQuery ikke bliver overskrevet af andet
$(document).ready(function() {
Problemet er fordi du MÅSKE bruger $, og $ er måske overskrevet af et
andet namespace.

Derfor brug

jQuery(document).ready(function() {
...
));
Post by scootergrisen
Ligesom der står på hjemmesiden http://tablesorter.com/docs/ i deres
eksempler men det giver også fejl.
scootergrisen
2013-08-22 18:45:27 UTC
Permalink
Post by Martin
Problemet er fordi du MÅSKE bruger $, og $ er måske overskrevet af et
andet namespace.
Hvad betyder $ i jquery ?
Post by Martin
Derfor brug
jQuery(document).ready(function() {
Skal der være $ tegn med ?

jQuery(document).ready(function($) {
Martin
2013-08-23 07:29:52 UTC
Permalink
Post by scootergrisen
Post by Martin
Problemet er fordi du MÅSKE bruger $, og $ er måske overskrevet af et
andet namespace.
Hvad betyder $ i jquery ?
Post by Martin
Derfor brug
jQuery(document).ready(function() {
Skal der være $ tegn med ?
jQuery(document).ready(function($) {
jQuery er namespaced.

I bunden af jquery javascript sker følgende

var $ = jQuery;

Altså at $ bliver assignet som et "ekstra" namespace

ved at gøre således

jQuery(document).ready(function($) {
}

Så smider du jQuery namespaced ind i funktionen som $

Du kan også vælge bare at skrive

jQuery(document).ready(function() {

Men så hvis $ namespaced allerede er overskrevet, så vil du ikke have
jQuery i $ namespaced mere, og skal så omskrive ALLE steder i din
tablesorter hvor der er skrevet $ til jQuery

Loading...