Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.01.2018, 20:12
Аспирант
Отправить личное сообщение для weirdjava Посмотреть профиль Найти все сообщения от weirdjava
 
Регистрация: 01.03.2017
Сообщений: 40

JQuery toggle active/inactive - jQuery
Всем привет,не могу разобраться как правильно сделать toggle свитчер ,сейчас у меня два обработчика на одну кнопку(вкл/выкл идет по /monitor/active/ и /monitor/deactive/ ),не получается внедрить toggle
$(document).ready(function() {
 
    var __getTable_timeout = 0;
 
 
 
    function getTable() {
 
        clearTimeout(__getTable_timeout);
 
        $.ajax({
 
            url: "monitor/all",
        type: "GET",
        dataType: "json",
        success: function(response) {
            var trHTML = '';
            $.each(response, function(key, value) {
 
                trHTML += '<tr><td>' + value.id + '</td><td>'
                    + value.url + '</td><td>'
                    + value.exceptedHttpResponseCode + '</td><td>'
                    + value.status + '</td><td>'
                    + value.active + '</td>' + //в поле acitive сейчас приходит true/false ,  как поменять на (true?'de':'')+'activate' ?
                    '<td><button data-id="' + value.id + '" + value.id + class="btn btn-danger btn-sm delBtn">Delete</td>' +
                    '<td><button data-id="' + value.id + '" + value.id + class="btn btn-danger btn-sm activeBtn">active/inactive</td> //.</tr>';
 
            });
 
            $('#mydata').html(trHTML);
 
            __getTable_timeout = setTimeout(getTable, 1000);
 
        }
 
    });
 
    };
 
 
 
 
    $('#mydata').on('click','button.activeBtn',function(){
        var id = $(this).data('id');
 
        $.ajax({
            url: '/monitor/deactive/' +$(this).data('id'),
            type: 'POST',
            dataType: "json",
            success: getTable
 
        });
 
    });
    $('#mydata').on('click','button.activeBtn',function(){
        var id = $(this).data('id');
 
        $.ajax({
            url: '/monitor/active/' +$(this).data('id'),
            type: 'POST',
            dataType: "json",
            success: getTable
 
        });
 
    });
 
 
});
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2018, 21:57
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

$(document).ready(function() {
	var __getTable_timeout = 0;

	function getTable() {
		clearTimeout(__getTable_timeout);
		$.ajax({
			url: "monitor/all",
			type: "GET",
			dataType: "json",
			success: function(response) {
				var trHTML = '';
				$.each(response, function(key, value) {
					trHTML += '<tr class="' + ((value.active? 'de' : '') + 'activate') + '"><td>' + value.id + '</td><td>' + value.url + '</td><td>' + value.exceptedHttpResponseCode + '</td><td>' + value.status + '</td><td>' + value.active + '</td>' + '<td><button data-id="' + value.id + '" + value.id + class="btn btn-danger btn-sm delBtn">Delete</td>' + '<td><button data-id="' + value.id + '" + value.id + class="btn btn-danger btn-sm activeBtn">active/inactive</td> //.</tr>';
				});
				$('#mydata').html(trHTML);
				__getTable_timeout = setTimeout(getTable, 1000);
			}
		});
	};
	$('#mydata').on('click', 'button.activeBtn', function() {
		var $t = $(this);
		$.ajax({
			url: '/monitor/' + $t.parents('tr').attr('class') + '/' + $t.data('id'),
			type: 'POST',
			dataType: "json",
			success: getTable
		});
	});
});

Последний раз редактировалось Nexus, 23.01.2018 в 10:06.
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2018, 22:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068



+ value.active + '</td>'

+( (value.active ? '' : 'de')+'activate') +'</td>'
Ответить с цитированием
  #4 (permalink)  
Старый 23.01.2018, 00:30
Аспирант
Отправить личное сообщение для weirdjava Посмотреть профиль Найти все сообщения от weirdjava
 
Регистрация: 01.03.2017
Сообщений: 40

рони, Nexus,

$('#mydata').on('click', 'button.activeBtn', function() {
        var $t = $(this);

        $.ajax({

            url: '/monitor/' + $t.parents('tr').attr('class') + '/' + $t.data('id'),

            type: 'POST',

            dataType: "json",

            success: getTable

        });

    });


к сожалению так не работает, с двумя обработчиками работает,но не получается сделать toggle switcher или просто если active делаю display=true кнопке актив если стаут active=false;тоесть кнопка activeBtn меняется,

$(document).ready(function() {

    var __getTable_timeout = 0;



    function getTable() {

        clearTimeout(__getTable_timeout);

        $.ajax({

            url: "monitor/all",
        type: "GET",
        dataType: "json",
        success: function(response) {
            var trHTML = '';
            $.each(response, function(key, value) {

                trHTML += '<tr><td>' + value.id + '</td><td>'
                    + value.url + '</td><td>'
                    + value.exceptedHttpResponseCode + '</td><td>'
                    + value.status + '</td><td>'
                    +( (value.active ? '' : 'in')+'activate') +'</td>' +
                    '<td><button data-id="' + value.id + '" + value.id + class="btn btn-danger btn-sm delBtn">Delete</td>' +
                    '<td><button data-id="' + value.id + '" + value.id + class="btn btn-danger btn-sm activeBtn">active/inactive</td></tr>';

            });

            $('#mydata').html(trHTML);

            __getTable_timeout = setTimeout(getTable, 1000);

        }

    });

    };

    getTable();


   

    $('#mydata').on('click','button.activeBtn',function(){
        var id = $(this).data('id');

        $.ajax({
            url: '/monitor/deactive/' +$(this).data('id'),
            type: 'POST',
            dataType: "json",
            success: getTable

        });

    });
    $('#mydata').on('click','button.activeBtn',function(){
        var id = $(this).data('id');

        $.ajax({
            url: '/monitor/active/' +$(this).data('id'),
            type: 'POST',
            dataType: "json",
            success: getTable

        });

    });


});

Последний раз редактировалось weirdjava, 23.01.2018 в 00:38.
Ответить с цитированием
  #5 (permalink)  
Старый 23.01.2018, 10:08
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Исправил ошибку посте №2.
Ответить с цитированием
  #6 (permalink)  
Старый 23.01.2018, 14:11
Аспирант
Отправить личное сообщение для weirdjava Посмотреть профиль Найти все сообщения от weirdjava
 
Регистрация: 01.03.2017
Сообщений: 40

Nexus,
Спасибо,прости что достаю,но всеравно проблема та же,сейчас кнопка "active/inactive" ,а как сделать что бы при нажатии,когда value.active = active кнопка становилась inactive и наоборт;что бы надпись и цвет на cамой кнопке менялся?
Ответить с цитированием
  #7 (permalink)  
Старый 23.01.2018, 14:17
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

$(document).ready(function(){
	var __getTable_timeout=0;

	function getTable(){
		clearTimeout(__getTable_timeout);
		$.ajax({
			url:"monitor/all",
			type:"GET",
			dataType:"json",
			success:function(response){
				var trHTML='';
				$.each(response,function(key,value){
					trHTML+='<tr class="'+((value.active?'de':'')+'activate')+'">' +
							'<td>'+value.id+'</td>' +
							'<td>'+value.url+'</td>' +
							'<td>'+value.exceptedHttpResponseCode+'</td>' +
							'<td>'+value.status+'</td>' +
							'<td>'+value.active+'</td>' +
							'<td><button data-id="'+value.id+'" class="btn btn-danger btn-sm delBtn">Delete</button></td>' +
							'<td>' +
								'<button data-id="'+value.id+'" class="btn btn-'+(value.active?'danger':'success')+' btn-sm activeBtn">' +
									(value.active?'Ina':'A')+'ctive' +
								'</button>' +
							'</td>' +
						'</tr>';
				});
				$('#mydata').html(trHTML);
				__getTable_timeout=setTimeout(getTable,1000);
			}
		});
	};
	$('#mydata').on('click','button.activeBtn',function(){
		var $t=$(this);
		$.ajax({
			url:'/monitor/'+$t.parents('tr').attr('class')+'/'+$t.data('id'),
			type:'POST',
			dataType:"json",
			success:getTable
		});
	});
});
Ответить с цитированием
  #8 (permalink)  
Старый 23.01.2018, 15:37
Аспирант
Отправить личное сообщение для weirdjava Посмотреть профиль Найти все сообщения от weirdjava
 
Регистрация: 01.03.2017
Сообщений: 40

Nexus,
Cпасибо!проблема решена!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JQuery animate() toggle click кирикала Events/DOM/Window 3 21.09.2016 10:17
jQuery Toggle Function arborik jQuery 6 28.08.2014 16:47
jquery 1.9 - toggle qwermjk jQuery 3 30.03.2013 23:34
jQuery - множественный toggle K_Irka Элементы интерфейса 0 27.07.2010 20:19
toggle() в jquery vanicon jQuery 2 18.01.2010 11:56