Требуется внести изменения в адаптивную версию сайта - под мобильные устройства. ТЗ предоставляю. Реализация - c помощью CSS
Требуется специалист Jacascript/PHP исправить функцию.
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
WP. Реализована функция добавления поста в "избранное" пользователя. На странице поста размещена ссылка "удалить/добавить" которая добавляет или удаляет этот пост из "избранного пользователя" (избранное выводится на отдельной странице). Баг заключается в том что, если находясь на странице поста, уже добавленного в избранное, кликнуть быстро два или больше раз по ссылке "удалить", то из избранного удалиться не только этот пост но и один или несколько других добавленных в избранное ранее. Таким образом, находясь на странице любого поста, беспрерывно кликая по ссылке добавить/удалить можно в итоге очистить все избранное, чего происходить не должно.
Еще раз, на практике это происходит так:
находясь на странице поста кликаем ссылку "добавить в избранное" (пост добавляется в избранное, ссылка "добавить в избранное" меняется на ссылку "удалить из избранного"). Кликаем на ссылку "удалить из избранного" (пост удаляется из избранного, ссылка "удалить из избранного" меняется на ссылку "добавить в избранное").
Все хорошо, Но! Если кликнуть на ссылку "удалить" два раза (быстро), то из избранного удалится этот пост и плюс еще один последний добавленный в избранное. Или если просто быстро кликать по ссылке много раз то избранное быстро очистится.
А должно быть так:
находясь на странице поста при многократных кликах по ссылке добавить/удалить, в независимости от скорости кликания, должна происходить строгая очередность обработки запроса: добавился, удалился, добавился, удалился... и именно только этот пост, на котором находимся.
Страница поста:
$userFavList = explode(",", $userFavList);
$addListEl = ' style="display:none"';
$removeListEl = ' style="display:none"';
if(in_array($post->ID, $userFavList)) {
$removeListEl = ' style="display:inline-block"';
$addClass = ' class="added"';
}
else{
$addListEl = ' style="display:inline-block"';
}
?>
>>Удалить из избранного>Добавить в избранное
Файл script.js:
function addToMyFavorite(userId,filmId, el){
var thisEl = jQuery(el);
var actn = 'add';
if(thisEl.hasClass('added')){
actn = 'removed';
}
jQuery.ajax({
url: addToFavoriteParth + "/addons/favorite.php",
data: 'userID=' + userId + '&filmID=' + filmId + '&action=' + actn,
success: function(data){
var flItem = thisEl.parent('.post');
if(data == 'added'){
showLink(thisEl, 'add');
//thisEl.addClass('added');
}
if(data == 'removed'){
//thisEl.removeClass('added');
if(thisEl.hasClass('favListItem')){
flItem.animate({opacity: 0},300,function(){jQuery(this).hide()});
}
showLink(thisEl, 'remove');
}
if(data == 'empty'){
//thisEl.removeClass('added');
flItem.animate({opacity: 0},300,function(){jQuery(this).hide().after('Ничего нет в избранном')});
showLink(thisEl, 'remove');
}
}
});
}
function showLink(el, arg){
var duration = 300;
var linkText = jQuery('.' + arg, el);
var hiddenLink = jQuery('span:hidden', el);
if(linkText.is(':visible')) {
linkText.fadeOut(duration, function(){
if(arg == 'add'){
el.addClass('added');
}
else{
el.removeClass('added');
}
hiddenLink.fadeIn(duration)
})
}
}
Файл favorite.php:
include_once($_SERVER['DOCUMENT_ROOT'].'/wp-config.php');
global $wpdb;
$user_id = $_GET["userID"];
$film_id = $_GET["filmID"];
$actn = $_GET["action"];
$chckClose = $_GET["chk"];
$favList = get_usermeta($user_id, 'favorite_film');
if($chckClose == true){
if(!$favList) echo 'empty';
}
if($favList) {
$favList = explode(",", $favList);
if($actn == 'add') {
if(!in_array($film_id ,$favList)) {
array_unshift($favList, $film_id);
echo 'added';
}
}
elseif($actn == 'removed'){
$removeFav = array_search($film_id, $favList);
unset( $favList[$removeFav]);
if($favList){
echo 'removed';
}
else{
echo 'empty';
}
}
$newFavList = implode(",", $favList);
update_usermeta( $user_id, 'favorite_film', $newFavList );
}
else{
update_usermeta( $user_id, 'favorite_film', $film_id );
echo 'added';
}
?>
Сайт на локале, поэтому продемонстрировать наглядно, к сожалению, не могу. Жду предложений.
Выбранный исполнитель
Похожие заказы
- $58Веб-программирование1 исполнительЗавершен8 лет назад
- После смены языка перестали отображаться товары в каталоге. - Работа с корзиной (убрать лишнее) - Доработать карточку товара (всплывающее окно) И пару мелочей, более подробное + сам сайт вышлю ...
Веб-программирование5 заявокЗакрыт8 лет назадЗдравствуйте! Необходимо доделать меню для сайта по аналогии с www.altschool.com/ с проработкой мобильной версии. Есть HTML/CSS макет сайта, загвоздка только в меню. Сделать необходимо сейчас. Кто свободен и готов взяться – ...
Веб-программирование2 заявкиЗакрыт8 лет назад- $1
И так на сайте есть платные функции такие как вип,выделение,спецразмещение мне нужно еще добавить подъем обявления на верх и пакет услуг что бы можно было применить все услуги вот сам скрипт yadi.sk/d/sE-U2gVB33xZX8 за все ...
Веб-программированиенет заявокЗакрыт8 лет назад - $15
Необходимо произвести небольшую доработку сайта http://borsac.ru/ Как сейчас: Если товар распродан, то он продолжает отображаться на сайте с пометкой, что товара нет в наличии Как должно быть: Если товар распродан, он автоматически ...
Веб-программирование3 заявкиЗакрыт8 лет назад Для доработки сайта, нужен программист на Kohana. Предлагаем 400руб в час, около 60 часов работы.
Веб-программирование3 заявкиЗакрыт8 лет назадПодробное ТЗ во вложении. Если вкратце - нужна система подбора туров, дизайн и верстка страниц уже готовы. Прошу сразу указывать ориентировочную стоимость и срок. Верстка: ...
Веб-программирование2 заявкиЗакрыт8 лет назадhttp://ausganica.ru спарсить: категории / подкатегории, цена, картинка, название товара, артикул, описание, характеристика одному товару может быть присвоено 2 цены (см скрин) нужно будет спарсить отдельно каждый товар, каждому товару своя цена
Веб-программирование1 исполнительЗавершен8 лет назадЕсть вп сайт на теме couponxl. необходимо изменить способ загрузки изображений на страницах акций. подробности в тз. Прошу дать вашу оценку
Веб-программирование1 исполнительЗакрыт8 лет назад