Помощь по js =)

Вообщем, есть код friend.js, который отвечает за добавление/удаление друзей.
Изначально в профиле стоит текстовка:
<li id="add_friend_item"><a href="#"  title="{$aLang.user_friend_add}" id="add_friend_show">{$aLang.user_friend_add}</a>


При добавлении в друзья эта текстова заменяется на надпись «Заявка отправлена».

Я решил оформить кнопку картинкой и процесс замены нарушился. Получился такой код:
<li id="add_friend_item"><a href="#"  title="{$aLang.user_friend_add}" id="add_friend_show" class="add-friend"> </a>

При добавлении в друзья не происходит появления текстовки «Заявка отправлена». Она появляется только после перезагрузки страницы.

Вопрос: что поменять в js чтобы происходила смена не текстовок, а картинок. Или классов css, не знаю, как правильно.

Код friend.js
var ls = ls || {};

/**
* Управление пользователями
*/
ls.user = (function ($) {
	
	/**
	* Добавление в друзья
	*/
	this.addFriend = function(obj, idUser, sAction){
		if(sAction != 'link' && sAction != 'accept') {
			sText = $('#add_friend_text').val();
			$('#add_friend_form').children().each(function(i, item){$(item).attr('disabled','disabled')});
		} else {
			sText='';
		}

		if(sAction == 'accept') {
			sPath = aRouter.profile+'ajaxfriendaccept/';
		} else {
			sPath = aRouter.profile+'ajaxfriendadd/';
		}

		ls.ajax(sPath, {idUser: idUser, userText: sText}, function(result){
			$('#add_friend_form').children().each(function(i, item){$(item).removeAttr('disabled')});
			if (!result) {
				ls.msg.error('Error','Please try again later');
			}
			if (result.bStateError) {
				ls.msg.error(null,result.sMsg);
			} else {
				ls.msg.notice(null,result.sMsg);
				$('#add_friend_form').jqmHide();
				$('#add_friend_item').remove();
				$('#profile_actions').prepend($(result.sToggleText));
			}
		});
		return false;
	};

	/**
	* Удаление из друзей
	*/
	this.removeFriend = function(obj,idUser,sAction) {
		ls.ajax(aRouter.profile+'ajaxfrienddelete/', {idUser: idUser,sAction: sAction}, function(result) {
			if (result.bStateError) {
				ls.msg.error(null,result.sMsg);
			} else {
				ls.msg.notice(null,result.sMsg);
				$('#delete_friend_item').remove();
				$('#profile_actions').prepend($(result.sToggleText));
			}
		});
		return false;
	}
	
	return this;
}).call(ls.user || {},jQuery);

9 комментариев

avatar
В js не шарю, но у меня вопрос: зачем задавать новый класс, если уже есть id значение add_friend_show? Вставки в css будет достаточно.
#add_friend_show { стили }
avatar
ну ок, тоже верно конечно.
avatar
вообще кнопку можно сделать на css чистом :) но дедушка ИЕ такое выдает, что лучше уж по старинке — картинкой.
avatar
Если я правильно тебя понял, то эта вещь реализована у шаблона bStreet. Не знаю как там на ИЕ, можешь проверить :) Во всяком случае, последний должно без проблем показывать.
avatar
что касается хтмл то там он точно такой же, как в дефолте, за исключением:
<a href="#" title="Добавить в друзья" id="add_friend_show" class="addfri"/>

В js не шарю, но у меня вопрос: зачем задавать новый класс, если уже есть id значение add_friend_show? Вставки в css будет достаточно.
=)
А js не могу открыть
avatar
Да нет, не как в дефолте. Словосочетания «Заявка отправлена» и «Заявка отклонена» обернуты в тег и оформление в виде кнопки. Результат можешь видеть все на том же демо bstreet.
avatar
А js открывать и не надо, в нем нету никаких изменений.
avatar
Ну оберну я в тег, толку, у меня даже текстовка не появляется :) То есть нарушен js прежде всего, хотя я его и не трогал.
avatar
Ну это уж твои косяки :) Тут только могу посоветовать перезалить файл.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.