Configurar botões ajax
3 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1 • Compartilhe
Configurar botões ajax
Detalhes da questão
Endereço do fórum: http://brasilmagicrpg.forumeiros.com/
Versão do fórum: ModernBB
Descrição
Olá, pode me ajudar?
Coloquei ícones de botões na gestão de imagens e apliquei os botões pelo "javascript", só que quando cliconos botões buga, não vai para o que eu cliquei.
Me ajuda?!
Exemplo (Imagem)
Re: Configurar botões ajax
Olá @NatO_MagiC,
Irei precisar de duas coisas suas, o código em uso e uma conta teste para que possa ver os ícones e fazer a alteração do código, script.
Aguardo uma resposta sua,
pedxz.
Irei precisar de duas coisas suas, o código em uso e uma conta teste para que possa ver os ícones e fazer a alteração do código, script.
Aguardo uma resposta sua,
pedxz.
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
Re: Configurar botões ajax
- Código:
/*globals jQuery, FA, _userdata*/
/**
* Change the topic icon with AJAX and JavaScript.
*
* @author Luiz
* @version 1.2
* @licence MIT
*/
(function ($) {
'use strict';
var config = [
{ name: 'Resolvido', id : 1, background: '#76be52', onlyForMod: true },
{ name: 'Em Curso', id : 2, background: '#ecb73c' },
{ name: 'Aceito', id: 3, background: '#6d66a3', onlyForAdmin: true },
{ name: 'Recusado', id: 4, background: '#c837a1', onlyForAdmin: true },
{ name: 'Importante', id: 5, background: '#e55649', onlyForAdmin: true }
];
window.FA = window.FA || {};
FA.Topic = FA.Topic || {};
var MarkIcon;
FA.Topic.MarkIcon = MarkIcon = function (config) {
var self = this;
self.userConfig = config;
self.defaults = {
name: undefined,
id: undefined,
background: undefined,
onlyForMod: false,
onlyForAdmin: false
};
self.config = $.extend({}, self.defaults, self.userConfig);
$.each(self.config, function (key, value) {
if (key === undefined) {
throw new Error ('[Topic Icons] The ' + key + ' key was not specified in the script config.');
}
if (value === undefined) {
throw new Error ('[Topic Icons] The ' + value + ' value was not specified in the settings.');
}
});
};
MarkIcon.prototype.init = function () {
var self = this;
var $post = $('.post:first');
var $link = $post.find('a[href$="mode=editpost"]');
if (!$link.length) {
return false;
}
if (this.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
return false;
}
if (this.config.onlyForAdmin && _userdata.user_level !== 1) {
return false;
}
self.messageLink = $link.attr('href');
self.$button = $('<button>', {
'class' : 'fa-mark-icon-button',
'data-id': self.config.id,
'text' : self.config.name
});
self.$button
.css('background-color', self.config.background)
.on('click', function (event) {
event.preventDefault();
self.runAjax();
})
.insertBefore($post)
;
self.appendStyles();
};
MarkIcon.prototype.runAjax = function () {
var self = this;
self.changeText('<i class="fa fa-refresh fa-spin"></i> Marking...');
$.get(self.messageLink)
.done(function (context) {
var $form = $('form[action="/post"]', context);
var encode = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
var formData = $form.serializeArray();
var data = {};
$.each(formData, function () {
var obj = this;
data[obj.name] = obj.value;
});
data.post_icon = self.config.id;
data.post = 1;
var encoded = $.map(data, function (value, key) {
return key + '=' + encode(value);
}).join('&');
$.post(self.messageLink, encoded)
.done(self.changeText('<i class="fa fa-check"></i> Marked!'))
.fail(self.error)
;
})
.fail(self.error)
;
};
MarkIcon.prototype.changeText = function (text) {
var self = this;
self.runAjax = function () {
return false;
};
self.$button
.html(text)
.prop('disabled', true)
;
};
MarkIcon.prototype.error = function () {
alert([
'[Topic Icons] AJAX Error.',
'Refresh the page and try again.'
].join('\n'));
};
MarkIcon.prototype.appendStyles = function () {
$('<style>', {
'text': [
'.fa-mark-icon-button {',
' padding: 5px 5px 5px 5px;',
' border: none;',
' color: #ffffff;',
' margin: 7px 0 7px 3px;',
' box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.08);',
' border-radius: 5px;',
'}'
].join('\n')
}).appendTo('head');
};
$(function () {
$.each(config, function () {
var self = this;
(new FA.Topic.MarkIcon(self)).init();
});
});
}(jQuery));
Aqui está o código e a conta teste é a seguinte:
Login: Teste_Forum
Senha: @Testando01
Re: Configurar botões ajax
Aqui tem o link com as imagens que eu quero que apareça nos tópicos ao clicar em umas das opções.
Link:
https://imgur.com/a/mBClLzC
Link:
https://imgur.com/a/mBClLzC
Re: Configurar botões ajax
Atenção!Você não pode postar mensagens consecutivas ou UP's antes de se completarem 24 horas desde a sua última mensagem em um tópico. Por este motivo, pedimos que leia as regras do Setor de Suporte e as regras do Fórum dos Fóruns para não cometer novos erros. |
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
Re: Configurar botões ajax
Pronto, está como moderador em: Inscrições para liderança
Re: Configurar botões ajax
@NatO_MagiC,
Pelo que podemos ver, não têm os botões ativos em seu fórum ou a permissão está apenas para administrador.
Tente dar uma olhada nisso, por favor.
Atenciosamente,
Rafael.
Pelo que podemos ver, não têm os botões ativos em seu fórum ou a permissão está apenas para administrador.
Tente dar uma olhada nisso, por favor.
Atenciosamente,
Rafael.
Re: Configurar botões ajax
Desculpe-me, já adicionei os botões!
Re: Configurar botões ajax
Olá!
Troque o código por este:
Abraços,
Rafael.
Troque o código por este:
- Código:
/*globals jQuery, FA, _userdata*/
/**
* Change the topic icon with AJAX and JavaScript.
*
* @author Luiz
* @version 1.2
* @licence MIT
*/
(function ($) {
'use strict';
var config = [
{ name: 'Resolvido', id : 0, background: '#76be52', onlyForMod: true },
{ name: 'Em Curso', id : 2, background: '#ecb73c' },
{ name: 'Aceito', id: 1, background: '#6d66a3', onlyForAdmin: true },
{ name: 'Recusado', id: 3, background: '#c837a1', onlyForAdmin: true },
{ name: 'Importante', id: 4, background: '#e55649', onlyForAdmin: true }
];
window.FA = window.FA || {};
FA.Topic = FA.Topic || {};
var MarkIcon;
FA.Topic.MarkIcon = MarkIcon = function (config) {
var self = this;
self.userConfig = config;
self.defaults = {
name: undefined,
id: undefined,
background: undefined,
onlyForMod: false,
onlyForAdmin: false
};
self.config = $.extend({}, self.defaults, self.userConfig);
$.each(self.config, function (key, value) {
if (key === undefined) {
throw new Error ('[Topic Icons] The ' + key + ' key was not specified in the script config.');
}
if (value === undefined) {
throw new Error ('[Topic Icons] The ' + value + ' value was not specified in the settings.');
}
});
};
MarkIcon.prototype.init = function () {
var self = this;
var $post = $('.post:first');
var $link = $post.find('a[href$="mode=editpost"]');
if (!$link.length) {
return false;
}
if (this.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
return false;
}
if (this.config.onlyForAdmin && _userdata.user_level !== 1) {
return false;
}
self.messageLink = $link.attr('href');
self.$button = $('<button>', {
'class' : 'fa-mark-icon-button',
'data-id': self.config.id,
'text' : self.config.name
});
self.$button
.css('background-color', self.config.background)
.on('click', function (event) {
event.preventDefault();
self.runAjax();
})
.insertBefore($post)
;
self.appendStyles();
};
MarkIcon.prototype.runAjax = function () {
var self = this;
self.changeText('<i class="fa fa-refresh fa-spin"></i> Marking...');
$.get(self.messageLink)
.done(function (context) {
var $form = $('form[action="/post"]', context);
var encode = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
var formData = $form.serializeArray();
var data = {};
$.each(formData, function () {
var obj = this;
data[obj.name] = obj.value;
});
data.post_icon = self.config.id;
data.post = 1;
var encoded = $.map(data, function (value, key) {
return key + '=' + encode(value);
}).join('&');
$.post(self.messageLink, encoded)
.done(self.changeText('<i class="fa fa-check"></i> Marked!'))
.fail(self.error)
;
})
.fail(self.error)
;
};
MarkIcon.prototype.changeText = function (text) {
var self = this;
self.runAjax = function () {
return false;
};
self.$button
.html(text)
.prop('disabled', true)
;
};
MarkIcon.prototype.error = function () {
alert([
'[Topic Icons] AJAX Error.',
'Refresh the page and try again.'
].join('\n'));
};
MarkIcon.prototype.appendStyles = function () {
$('<style>', {
'text': [
'.fa-mark-icon-button {',
' padding: 5px 5px 5px 5px;',
' border: none;',
' color: #ffffff;',
' margin: 7px 0 7px 3px;',
' box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.08);',
' border-radius: 5px;',
'}'
].join('\n')
}).appendTo('head');
};
$(function () {
$.each(config, function () {
var self = this;
(new FA.Topic.MarkIcon(self)).init();
});
});
}(jQuery));
Abraços,
Rafael.
Re: Configurar botões ajax
Obrigado pela ajuda, funcionou perfeitamente!
Só que sempre que vou criar um tópico ele aparece em cima como mostra na imagem:
Como removo isso?
Para qualquer um fica assim!
Re: Configurar botões ajax
Adicione na sua folha de estilo, o seguinte código:
- Código:
form[action="/post"] dl:nth-of-type(1) {
display: none;
}
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
Re: Configurar botões ajax
Grato pela ajuda!
Pode fechar o tópico.
Até mais...
Re: Configurar botões ajax
Tópico resolvidoMovido para "Questões resolvidas". |
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
Tópicos semelhantes
» Responder sem avisos em AJAX
» Paginação em ajax
» Citar com ajax
» Erro AJAX (Last post)
» Ícone do tópico com AJAX
» Paginação em ajax
» Citar com ajax
» Erro AJAX (Last post)
» Ícone do tópico com AJAX
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos