我面临着非常奇怪和困难的问题。我正在开发一个Web应用程序,我在其中创建了一些小部件。如果我点击图标,窗口小部件编辑器将出现在模块化弹出窗口中,用户可以输入他的数据,该数据将作为标签显示在仪表板上。我在仪表板上放置标签上方的“编辑”按钮,现在我想添加删除按钮,假设用户将在仪表板上添加小部件,之后他发现他不需要该仪表板,所以他点击删除按钮小部件应该删除,如果用户在删除后再次想要那个小部件时,当他点击之前删除的特定小部件的图标时,该小部件应该再次出现。我尝试这样做,但是一旦我点击删除按钮,我就可以删除小部件,但是当我点击小部件的图标时,我无法再回来。
请帮我解决这个问题
答案 0 :(得分:2)
只是猜测你想要做什么,这是一个添加你可以再次关闭的div的例子:
<强>设定:强>
var WIDGET_MARKUP =
"<div class='widget'>I'm the widget. " +
"<span class='close'>Close</span>" +
"</div>";
// Opens the widget, returns true; if the widget is already
// open, doesn't open a a second and returns false.
function openWidget(onClose) {
var widget;
// If there's already one open, don't do anything
if ($("div.widget").length > 0) {
// Already open, don't open another
return false;
}
// There isn't, add one
widget = $(WIDGET_MARKUP);
widget.appendTo(document.body);
widget.delegate('span.close', 'click', function() {
// Remove the widget
widget.remove();
// Call the callback if any
if (onClose) {
try {
onClose();
}
catch (e) {
}
}
});
// true = opened the widget
return true;
}
使用:强>
$('#btnAddWidget').click(function() {
var button = this;
if (openWidget(handleClose)) {
// Opened the widget, disable our button
button.disabled = true;
}
function handleClose() {
// Widget was closd, re-enable the button
button.disabled = false;
}
});
显然,只有你想要按钮才能禁用按钮;如果你不这样做,就这样使用它:
<强>设定:强>
var WIDGET_MARKUP =
"<div class='widget'>I'm the widget. " +
"<span class='close'>Close</span>" +
"</div>";
// Opens the widget, returns true; if the widget is already
// open, doesn't open a a second and returns false.
function openWidget(onClose) {
var widget;
widget = $(WIDGET_MARKUP);
widget.appendTo(document.body);
widget.delegate('span.close', 'click', function() {
// Remove the widget
widget.remove();
// Call the callback if any
if (onClose) {
try {
onClose();
}
catch (e) {
}
}
});
}
使用:强>
$('#btnAddWidget').click(function() {
openWidget();
});