处理 jQuery 小部件关闭方法
handle jQuery widget close method
我是jQuery小部件的新手,并试图学习它,我创建了一个用于显示对话框的小部件,该小部件的_create()
方法执行以下操作:
添加用于隐藏用户屏幕的遮罩对话框。添加一个关闭"按钮",它是一个带有单击事件处理程序的div向用户显示对话框
当我单击关闭div 时,我可以使用以下命令删除小部件实例 -
$(this).parent().remove();
我没有找到隐藏我在_create方法中创建的屏幕遮罩div的方法。
创建和关闭方法的代码如下 -
_create: function () {
var handle = this;
if (this.options.Height == 0) this.options.Height = this.element.height();
if (this.options.Width == 0) this.options.Width = this.element.width();
$(document.body).css({ margin: 0, padding: 0 });
this.wrapper = $("<div class='wrapperClass'>").css({
'height': this.options.Height,
'width': this.options.Width,
'position': 'absolute',
'left': '50%',
'margin-left': -1 * this.options.Width / 2,
'top': '50%',
'margin-top': -1 * this.options.Height / 2,
'border': '3px solid red',
'border-radius': this.options.Radius,
'z-index': this.options.Zindex
});
//create the screen masking background
this.maskScreen = $('<div />').css({ 'height': '100%', 'width': '100%', 'position': 'absolute', 'top': 0, 'left': 0, 'background-color': this.options.bgColor, 'z-index': this.options.Zindex - 1, 'display': 'block', 'opacity': this.options.bgOpacity, 'margin': 0, 'padding': 0 });
$('body').append(this.maskScreen);
this.element.css('display', 'block');
this.wrapper.html(this.element);
$('body').append(this.wrapper);
if (this.options.addClose) this._addClose();
},
_addClose: function () {
this.closeButton = $('<div />')
//add close class
.addClass("closeClass").css("z-index", this.options.Zindex + 1);
this.closeButton.on("click", function () {
$(this).parent().remove();
});
this.wrapper.append(this.closeButton);
},
如何引用在 _create()
方法中创建的屏幕遮罩div
?
您应该
使用 jqueryUI 小部件_destroy
方法来为您进行清理,这样您就可以引用您在 _create
方法中添加的所有变量和元素,并以正确的顺序将它们全部删除以恢复环境。
在这种情况下,您的closeButton
应该简单地调用小部件实例的_destroy
方法,而不是自己执行任何删除。
如果你可以发布一个工作的jsFiddle,我会告诉你实际的代码。
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- jQuery插件-从插件中调用公共方法
- JQuery:向多个匹配结果添加换行符的最简单方法
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 从数组中删除元素的最佳方法是:javascript/jquery
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- jquery:将动画绑定到滚动条位置的更好方法
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 在附加方法jquery validate中为特殊字符使用regex
- .keyup 方法 JQuery 上的筛选值
- $.get() 方法 JQuery 不读取任何内容 (html)
- 使用“;.css()"方法jQuery
- 将属性传递给方法jQuery和Rails
- Object[Object Object]没有方法-jQuery错误
- AJAX方法Jquery不能返回数据
- 发送值post方法jquery在php页面
- 对象不支持属性和方法.- jQuery诺基亚Lumia