Jquery 插件 疑难杂症,求高手解答

mars58 2010-10-09 03:03:52
function EditUser(id, userName) {
$("#depBtn").eq(4).ShowBoloDialog({Contents:"234" });
$("#depBtn").eq(4).ShowBoloDialog({Contents:"abc" });
}

ShowBoloDialog是我写的插件,我最后得到结果的是 234 而不是abc,我的需求是得到传入参数的Contents为abc,有什么办法?
...全文
146 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
mars58 2010-10-10
  • 打赏
  • 举报
回复
up up up
zhangshaolongjj 2010-10-09
  • 打赏
  • 举报
回复
if (!$("#BoloDialogWindow").length > 0) {
这个条件好像有问题,
你第一次创建后,以后只是show,没有改变内容。
mars58 2010-10-09
  • 打赏
  • 举报
回复
(function($) {
$.fn.ShowBoloDialog = function(options) {
var opts = $.extend({}, $.fn.ShowBoloDialog.defaults, options);
$(this).click(function() {
//以下代码不通用
if ($(this).attr("bkimg") == "3")
return
//结束
var w, h, de;
de = document.documentElement;
w = self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
h = self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;
var diagtop = h / 2 - (opts.Height / 2) + eval($(document).scrollTop());
var diagleft = w / 2 - (opts.Width / 2) + eval($(document).scrollLeft());
if (!$("#BoloDialogWindow").length > 0) {
var maktemp = '<div id="markdiag" style="background:#eee;width:' + w + 'px; height:' + h + 'px; position:absolute; top:0px;left:0px; z-index:80;"></div>';
var contenDiv = opts.Contents;
if (opts.ContentFlag == 1) {
contenDiv = "<iframe src='" + opts.FrameURL + "' style=\"height:100%; width:100%;\" scrolling=\"no\" frameborder=\"0\"></iframe>";
}

var tempstr = '';
tempstr += ' <div id="BoloDialogWindow">';
tempstr += ' <div class="title1"><div id="Title">' + opts.Title + '</div><a class="close"></a></div>';
tempstr += ' <div class="title2"><div id="SubTitle">' + opts.SubTitle + '</div></div>';
tempstr += ' <div class="title3"><div id="Des">' + opts.Des + '</div></div>';
tempstr += '<div id="Content">' + contenDiv + '</div>'; //内容
tempstr += ' </div>';
$("body").append(maktemp);
$("body").append(tempstr);
}
else {
$("#markdiag").show();
$("#BoloDialogWindow").show();
}
var css = {}
if (window.navigator.userAgent.indexOf('MSIE') >= 1) {
css.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + opts.Intopacity * 100 + ')';
}
else {
css.opacity = opts.Intopacity;
}
$("#markdiag").css(css); //设置遮罩层,兼容IE,FF


$("#BoloDialogWindow").css({ "top": diagtop, "left": diagleft, "width": opts.Width, "height": opts.Height });
$("#Content").css({ "height": opts.Height - 100 }); //设置内容Div
//拖动
if (opts.IsDrag == 1) {
document.onselectstart = function() { return true; };
var moveFlag = false;
var mouseStartLeft = mouseStartTop = 0;
var divStartLeft = divStartTop = 0;
$("#BoloDialogWindow .title1").mousedown(function(e) {
moveFlag = true;
$("#BoloDialogWindow").css({ "cursor": "move" });
mouseStartLeft = (typeof (event) != 'undefined') ? event.x : e.pageX;
mouseStartTop = (typeof (event) != 'undefined') ? event.y : e.pageY;
divStartLeft = $("#BoloDialogWindow").offset().left;
divStartTop = $("#BoloDialogWindow").offset().top;
}).mouseup(function() {
moveFlag = false;
$("#BoloDialogWindow").css({ "cursor": "default" });
mouseStartLeft = mouseStartTop = 0;
divStartLeft = divStartTop = 0;
});
$(document).mousemove(function(e) {
if (!moveFlag) return;
document.onselectstart = function() { return false; };
var mouseLeft = (typeof (event) != 'undefined') ? event.x : e.pageX;
var mouseTop = (typeof (event) != 'undefined') ? event.y : e.pageY;
var addLeft = mouseLeft - mouseStartLeft;
var addTop = mouseTop - mouseStartTop;
$("#BoloDialogWindow").css({ "left": divStartLeft + addLeft, "top": divStartTop + addTop });
});
}
//end
$(window).scroll(function() {
var diagtop = h / 2 - (opts.Height / 2) + eval($(document).scrollTop());
var diagleft = w / 2 - (opts.Width / 2) + eval($(document).scrollLeft());
$("#BoloDialogWindow").css({ "top": diagtop, "left": diagleft });
});

$(".close").click(function() {
if ($("#BoloDialogWindow").length > 0) {
$("#BoloDialogWindow").remove();
}
if ($("#markdiag").length > 0) {
$("#markdiag").remove();
}
})

})
};
$.fn.ShowBoloDialog.defaults = {
Width: "300",
Height: "300",
Title: "对话框",
SubTitle: "子标题",
Des: "功能描述",
Intopacity: "0.2",
ContentFlag: "0",
FrameURL: "",
Contents: "",
IsDrag: "1"
};
})(jQuery);
zhangshaolongjj 2010-10-09
  • 打赏
  • 举报
回复
ShowBoloDialog
这个代码可以贴下不
mars58 2010-10-09
  • 打赏
  • 举报
回复
这个就像是一个静态类一样,只被初始化一次
mars58 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 net_lover 的回复:]
你为啥要执行2次呢
[/Quote]
我不是要执行两次,只是模拟我的代码,
mars58 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhangshaolongjj 的回复:]
加个时间戳看看,怀疑是缓存了
[/Quote]
缓存不可能,试过了
孟子E章 2010-10-09
  • 打赏
  • 举报
回复
你为啥要执行2次呢
zhangshaolongjj 2010-10-09
  • 打赏
  • 举报
回复
加个时间戳看看,怀疑是缓存了
mars58 2010-10-09
  • 打赏
  • 举报
回复
ShowBoloDialog 就是弹出一个遮罩层,然后遮罩层上面显示contens
我上面的代码得到的效果是 遮罩层上面显示234 而不是 abc
list8477 2010-10-09
  • 打赏
  • 举报
回复
ShowBoloDialog实现的是什么功能?

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧