function hideClose(){
var unreplied_hide_close_btn = jQuery('.commentbox-gray:not(.private-note)').length;
var close_button = jQuery("a[data-status-name='Closed'][data-cnt-id='cnt-note']");
if(unreplied_hide_close_btn > 0)
{
jQuery('#close_ticket_btn').show();
close_button.show();
if(jQuery("#helpdesk_ticket_status > option[value='5']").length <= 0)
{
jQuery("#helpdesk_ticket_status").append('<option value="5">Closed</option>');
}
}
else
{
jQuery("#helpdesk_ticket_status > option[value='5']").remove().end();
jQuery('#close_ticket_btn').hide();
var button_text = jQuery("[data-public-text='Add Public Note'] span").text();
if((button_text == "Add Private Note"))
{
close_button.hide();
}
else
{
close_button.show();
}
}
}
Вот функция, которая переключает кнопку закрытия, если есть элемент с классом «Комментарий ящика», который не является «частной нотой».JQuery жить функция не обнаруживает изменения АЯКСА вызова
Я вызываю эту функцию, когда DOM готов.
jQuery(document).ready(function(){
setInterval(function(){
hideClose();
},500);
jQuery('.commentbox').livequery(function(){
hideClose();
});
});
Есть ajax-вызовы, которые изменяют DOM при добавлении заметок. Также есть опция удаления на заметке, которая выполняется через AJAX. Вызов функции внутри setInterval будет проверяться каждые полсекунды, потому что примечания могут быть добавлены в любой момент. Когда AJAX выполняется для добавления заметки, функция вызывается. Но функция не вызывается, когда заметка удаляется. Переменная "unreplied_hide_close_btn" не обновляется после удаления элемента. Из того, что я наблюдал, вызов AJAX для удаления заметки прерывает setInterval. Даже функция livequery не работает. Я также пробовал жить, на, связывать функции. Я хочу знать, есть ли способ проверить все изменения DOM, чтобы можно было использовать альтернативу setInterval. Если нет другого способа, кроме setInterval, пожалуйста, помогите мне в том, почему функция hideClose не получает вызов после удаления заметки.
Вот вызов AJAX для удаления заметки.
<a class="red_links conv-action-icon conv-actions-delete tooltip" href="#" onclick="if (confirm('Remove this from the ticket conversation?')) { new Ajax.Request('/helpdesk/tickets/4/notes/1000313643', {asynchronous:true, evalScripts:true, method:'delete'}); }; return false;" data-original-title="Delete" twipsy-content-set="true">Delete</a>
Какую версию Jquery вы используете? Я верю, что у Jquery есть это. Функция для прямого запроса –
Я также пробовал функцию .on. setInterval - это то, как не запускать функцию hideClose() после завершения запроса ajax. – Abhishek