У меня есть событие click, которое анимируется в каком-то контенте AJAX на странице.jquery undelegate click event после завершения события
После того, как это содержимое было обнаружено, и пользователь нажал ту же самую ссылку, которая активировала процесс, теперь я хочу обратить вспять процесс и закрыть текущее раскрывающееся содержимое.
В настоящий момент открытый флажок закрыт, либо нажав ссылку «закрыть», либо щелкнув еще одну вылетущую ссылку в последовательности. Если пользователь нажимает текущую ссылку на вылет, я хочу, чтобы текущий вылет закрылся.
// Close fly out function
function closeFlyout() {
$('.fly_container').animate({
'right': '-332'
}, 300, 'swing', function() {
$(this).detach();
/* TODO: z-index issues in IE7, IE6
$('.dark_overlay').fadeOut(300, function() {
$(this).remove();
});
*/
});
};
$('.widget').delegate('.widget .fly_out', 'click', function() {
/*
TODO: z-index issues in IE7, IE6
$('body').prepend('<div class="dark_overlay" />');
*/
var $widget = $(this).closest('.widget');
var $flyOutIndex = $(this).index('.fly_out');
if ($flyOutIndex == 0) {
$flyOutURL = 'Content/HTMLSnippets/Flyouts/Priceassessment/product_order.htm';
} else if ($flyOutIndex == 1) {
$flyOutURL = 'Content/HTMLSnippets/Flyouts/PriceHistory/price_history_comparisons.htm';
} else if ($flyOutIndex == 2) {
$flyOutURL = 'Content/HTMLSnippets/Flyouts/PriceHistory/price_history_scenarios.htm';
} else if ($flyOutIndex == 3) {
$flyOutURL = 'Content/HTMLSnippets/Flyouts/PriceHistory/price_history_analysis.htm';
}
$('.current').removeClass('current');
$(this).addClass('current');
// Close any open flyouts
closeFlyout();
$.ajax({
type: 'GET',
url: DashboardApplicationRoot + $flyOutURL,
dataType: 'html',
cache: true,
success: function(data) {
$($widget).prepend(data);
$('.fly_container').animate({ 'right': '0' }, 300);
$('.scroll').jScrollPane();
$('.striped li:nth-child(even)').addClass('odd');
}
});
return false;
});
// Close fly out function
$('.widget').delegate('.fly_container .close', 'click', function() {
closeFlyout();
$('.current').removeClass('current');
return false;
});
Smart one Nick :) – RyanP13
С тем же кодом, как я могу подождать, пока текущий вылет не будет открыт до открытия нового вылета, если щелкнуть ссылку, которая не является текущей? – RyanP13
@ RyanP13 - Вы хотите поставить их в очередь или игнорировать другие клики ''fly_out', пока они работают? –