Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos!
estou criando um plugin para mostrar uma janela de confirmação, como pode ver no código abaixo:
jQuery.fn.w3dialog = function(options)
{
var defaultSettings = {
title : "Confirme:",
type : "confirm",
message: "Deseja deletar este item ?",
imgsDir: 'public/imagens/w3dialog',
maskColor: "#fff",
handler: ''
};
settings = $.extend(defaultSettings, options);
var obj = null;
var aux = null;
var objStyle = null;
var maskHeight = $(document).height();
var maskWidth = $(window).width();
var maskColor = settings.maskColor;
if(settings.type=='confirm')
{
objStyle = "color: #AB0505; background: url("+settings.imgsDir+"/alert.jpg) no-repeat left center;";
obj = "<div style='margin-left: 70px;'><p>"+settings.message+"</p><br />" +
"<table style='width: 100%'><tr><td align='center'>" +
"<div id='btnSIM' style='cursor:pointer; width:66px; line-height: 22px; height: 22px; padding: 0px;'>" +
"<img src='"+settings.imgsDir+"/btnSIM.png' style='border: 0px;'>" +
"</div></td><td align='center'><div id='btnNAO' style='cursor:pointer; width:66px; line-height: 22px; height: 22px; padding: 0px;'>" +
"<img src='"+settings.imgsDir+"/btnNAO.png' style='border: 0px;'>" +
"</div></td></tr></table></div>";
}
var mask = document.getElementById('w3mask');
if(mask==null)
{ $('body').append("<div id='w3mask' style='display: none; position: absolute; top: 0px; left: 0px; width:"+maskWidth+"px; height:"+maskHeight+"px; background-color:"+maskColor+"; padding: 0px; margin:0px; z-index: 999;'></div>"); }
var element = document.getElementById('w3dialog');
if(element==null)
{ $('body').append("<div style='display:none; position:absolute; top: 50%; left: 50%; margin-top: -64px; margin-left: -164px; z-index: 9999; width: 308px; line-height: 108px; height: 108px; padding: 10px; background: url("+settings.imgsDir+"/bg.png) no-repeat;' id='w3dialog'>" +
"<div style='margin-left:32px; margin-top: 6px;'><span style='font: bold 12px tahoma; color: #333'> "+settings.title+" </span></div>" +
"<div style='margin-top: 8px; padding: 5px; font: bold 10px tahoma; "+objStyle+"'>"+obj+"</div></div>");
}
$("#w3mask").fadeTo(0, 0.6).fadeIn(300);
$("#w3dialog").fadeIn(200);
$("#btnSIM").click(function(){ alert('oi'); });
$("#btnNAO").click(function() { $("#w3mask").fadeOut(300); $("#w3dialog").fadeOut(200); });
};
Mas estou com um problema chato, recaparem a linha:
$("#btnSIM").click(function(){ alert('oi'); });
Quando eu clico para abrir essa janela de confirmação, e clico em "SIM" (div id='btnSIM') ele me da 1 alert, entao fecho a janela de confimação(div id='w3dialog'). quando clico em outro item ele abre a janela "pela 2ª vez", quando clico em "SIM" ele me da 2x o alert('oi'). como se cada vez que eu fechasse e abrisse a janela ele adicionasse um *indice em um array, cada vez mais aumentado...
+ um exemplo: se eu ficar clicando em 'deletar', abrindo e fechando a div id='w3dialog', digamos 5x, na 6ª vez que eu abrir a janela e clicar em 'SIM' ele vai dar o alert('oi') 6x.... não faço a mínima idéia do porquê isso.
Alguém se habilita ??
abraços
Carregando comentários...