У меня есть эти divs, настроенные на всех моих страницах, чтобы поймать, было ли действие успешным или нет через параметр URL. Предполагается, что ошибка div должна показывать, когда есть ошибка - и успех div, когда это успех.
Кажется, что он отлично работает на других страницах, кроме этого. Я пережил это несколько раз и не могу понять, что может быть неправильным.
В консоли firebug я получаю следующее: ReferenceError: $ не определено $ ('# action-success'). Show();
CSS:
/* error div */
div#action-error
{
text-align: center;
border: 1px solid white;
display: none;
background-color: #a80077;
border-radius: 15px;
}
/* success div */
div#action-success
{
text-align: center;
border: 1px solid white;
display: none;
background-color: #5a8e4a;
border-radius: 15px;
}
HTML:
<!-- RESULT ERROR/SUCCESS -->
<div class="container_12" id="action-error">
<span class="error">Error: There was an error deleting your album. Please try again.</span>
</div>
<div class="container_12" id="action-success">
<span class="success">Your album was deleted successfully.</span>
</div>
<!-- RESULT ERROR/SUCCESS END -->
Jquery:
К началу страницы: (найдено на SO)
<script>
function getParameterByName(name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null;
}
</script>
Дно:
//------------------------------------------------------------------
var error = getParameterByName('error');
if(error){
alert(error);
$('#action-error').show();
}
//------------------------------------------------------------------
var success = getParameterByName('result');
if(success){
$('#action-success').show();
}
Я посмотрел на другие темы на SO, но ни один из них, похоже, не был тем, чем я занимаюсь. Любая помощь будет оценена, и спасибо за ваше время.
ну, ребята - это то, что происходит, когда вы кодируете полусмерти, выходя на кофе. Проблема в том, что я забыл включить библиотеку jQuery в свой файл... Извините, что потратил ваше время.
Когда я говорю, я работаю над своей шляпкой.
Вы завернули JavaScript с помощью функции, которая передает jQuery как $?
(function($){
//-----------
var error = getParameterByName('error');
if(error){
alert(error);
$('#action-error').show();
}
//------------------------------------------------------------------
var success = getParameterByName('result');
if(success){
$('#action-success').show();
}
//------------
})(jQuery);
$("#action-success").show()
- его следует вызывать внутри функции, которая выглядит как выше. В противном случае переменная $ не определяется как jQuery. Так что, если вы используете jQuery $, у вас должна быть функция-оболочка для всего этого кода.