2010-08-29 2 views
0

Прямо сейчас вы нажимаете на ссылку, она посылает вызов ajax и на успех он добавляет вывод. Не я бы хотел, если вы нажмете на ссылку, пока она открыта, тогда она должна закрыть/скрыть вывод.jQuery: если нажать еще раз, спрячьте

function MoreFriendOptions(friend){ 
$.ajax({ 
     type: "POST", 
     url: "misc/GetMoreFriend.php", 
    data: { 
    mode: 'ajax', 
    friend : friend 
    }, 
     success: function(msg){ 
     $('#MoreFriendInfo'+friend).prepend(msg); 

     } 
    }); 
} 

echo "<div id='MoreFriendInfo".$showInfo['bID']."'></div>"; 
    <div style="float: right;"> 
    <a href="javascript:void(0);" onclick="MoreFriendOptions(<?=$showInfo["bID"];?>)">mer</a> 
    </div> 
+0

В вашем вопросе или обработчике событий нет ссылки, или что-либо еще, действительно имеющее отношение к вопросу. У вас есть *, чтобы начать включать соответствующую информацию в ваши вопросы, после более чем 160 вопросов, которые вам нужно получить, чтобы лучше спросить, в противном случае они угадывают игры и полезны для того, чтобы никто не нашел это в будущем. –

+0

мое плохое извините обновлено – Karem

ответ

3

Вам нужен метод переключения.

$('a.mylink').toggle(function() { 
    //do your ajax stuff here 
}, function() { 
    //do your close and hide here 
}); 
+1

Что делать, если пользователь нажимает много раз? Он будет повторно запускать запрос AJAX в другое время :) Вам нужно отключить ссылку и снова включить ее на 'complete' здесь. –

+0

Вместо того, чтобы делать запрос ajax каждый раз, возможно, добавьте предложение о проверке на наличие содержимого, но оно скрыто. –

+0

Хороший вопрос Ник! Но я думаю, что это зависит от сценария, если каждое «шоу» должно быть новым запросом сервера, тогда все нормально. в противном случае да, прежде чем делать ajax-материал, выполните проверку, чтобы увидеть, есть ли контент в элементе, заполненном ajax и его открытым (классом или видимым), если нет, то только тогда ajax-материал –

0

Если у вас есть что-то вроде установки

<div class=friends"> 
    <div class="friend1">John Doe</div> 
    <div class="friend2">Jane Doe</div> 
</div> 

затем, если вы сохраните индекс для позиционирования, можно удалить/скрыть элементы, которые вы добавили.

Смежные вопросы