Bonsoir, je suis en train de réaliser le tutoriel sur les notifications en JS et je bloque sur une erreur qui doit être toute bête :
Uncaught SyntaxError: Unexpected token ILLEGAL jquery.notif.js:5 sur chrome et :
SyntaxError: unterminated string literal jquery.notif.js:5 sur Firefox.
Voici les codes en question HTML :
<!DOCTYPE HTML>
<html lang="fr" dir="ltr">
<head>
<title>notification</title>
<meta charset="UTF-8">
<meta name="description" content="" />
<link href="/~fruits/css/styles.css" rel="stylesheet" />
<link rel="icon" type="image/x-icon" href="/~fruits/img/favicon.png" />
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<meta name="keywords" content="... " />
<meta name="author" content=" " />
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<link rel="stylesheet" href="css/styles-ie.css" media="screen">
<![endif]-->
</head>
<body>
<div id="notification">
<div class="notification">
<div class="left"> <div class="icon"> </div></div>
<div class="right">
<h2>Titre</h2>
<p>Description</p>
</div>
</div>
</div>
</body>
<script type="text/javascript" src="/~fruits/scripts/jquery.notif.js"></script>
<script type="text/javascript" src="/~fruits/scripts/jquery.js"></script>
</html>
et le JS correspondant :
(function($){
$.fn.notif = function(options) {
var options = $.extend({
html : '<div class="notification">\
<div class="left">\
<div class="icon">\
\
</div>\
</div>\
<div class="right">\
<h2>Titre</h2>\
<p>Description</p>\
</div>\
</div>'
}, options);
console.log(options);
}
$('body').notif({title: 'Mon titre', content: 'Mon contenu', icon : '' })
})(jQuery);
Je vois vraiment pas où est l'erreur, si quelqu'un à une idée.
Cordialement.
Tu as bien importé jquery?
Il faut le charger dans la page en premier pour éviter les soucis.
Bonjour et ça :
(function($){
$.fn.notif = function(options) {
var html = "<div class=\"notification\">";
html += "<div class=\"left\">";
html += "<div class=\"icon\">";
html += "";
html +="</div>";
html += "</div>";
html +="<div class=\"right\">";
html += "<h2>Titre</h2>";
html +="<p>Description</p>";
html +="</div>";
html +="</div>";
var options = $.extend({
html : html
}, options);
console.log(options);
}
$('body').notif({title: 'Mon titre', content: 'Mon contenu', icon : '' })
})(jQuery);
Sachant que pour récuperer un template du genre, on peut toujours le mettre en display none dans une div avec l'id template
Puis faire un truc du style
var html = $('#template').html();
$('#template').remove();
bien cordialement
Antho
Merci de ta réponse, même comme ça j'ai toujours une erreur a la ligne 5 : Uncaught SyntaxError: Unexpected identifier =(
Alors la fonction passe bien juste un seul problème à la ligne 24 :
Uncaught ReferenceError: jQuery is not defined