在原型对象 jquery 上将一个按钮与另一个按钮不同
Differing one button from another on a prototype object jquery
首先,原型:
function Notification (title, message, id) {
var $title = this.title = title;
var $message = this.message = message;
var $id = this.id = title;
/* ---------------creating HTML prototype */
var $mainDiv = $("<div></div>").appendTo($("#wrapper"));
$mainDiv.attr('id', $id);
$mainDiv.addClass('main-div');
var $dismissButton = $("<button>X</button>").appendTo($mainDiv);
$dismissButton.attr('id', 'dismissButton');
var $pTitle = $("<h2></h2>").appendTo($mainDiv);
$pTitle.attr('id', 'title');
$pTitle.text($title);
var $para = $("<p></p>").appendTo($mainDiv);
$para.attr('id', 'message');
$para.text($message);
var $ul = $("<ul></ul>").appendTo($mainDiv);
var $li1 = $("<li></li>").appendTo($ul);
$li1.attr('id', 'okButton');
var $button = $("<button>Ok</button>").appendTo($li1);
$button.addClass('buttons');
/* ---------------Dismissing notifications */
$("#dismissButton").click(function() {
document.getElementById($id).remove();
});
};
因此,原型是使用new Notification(*arguments here*)
制作的,在那里我们得到了一个带有通知小部件的框。 到目前为止一切顺利。当我按下 X 按钮(ID dismissbutton
)时,它应该删除该框,并且确实如此。然而。如果我多次使用该new notification
,我会得到几个框($mainDiv
具有不同的 ID),它们的关闭按钮不起作用。最上面的小部件框的关闭按钮是唯一有效的按钮,它也删除了所有其他框。
我需要将它们分开,并让关闭按钮分别适用于每个盒子。
提前致谢:)
这里的问题是您正在创建具有相同ID的多个元素(顺便说一下,这是无效的HTML)。
每次跑步时
var $dismissButton = $("<button>X</button>").appendTo($mainDiv);
$dismissButton.attr('id', 'dismissButton')
正在创建一个新的"关闭按钮",它与之前的"关闭按钮"(如果有)具有相同的ID(dismissButton
)。
另一件事是,每次跑步时
$("#dismissButton").click(function() {
document.getElementById($id).remove();
});
您仅指示第一个"关闭按钮"删除由 ID $id
标识的元素。
在我看来,解决此问题的最佳方法是使用对元素本身而不是 ID 的引用。
所以我会像这样创建关闭按钮;
var $dismissButton = $("<button>X</button>").appendTo($mainDiv);
并像这样确定其点击回调
$dismissButton.on('click', function () {
$mainDiv.remove();
});
这对您来说应该很好。
最后,但并非最不重要的一点是,我会避免为任何元素提供相同的 ID,因为它会产生无效的 HTML 代码。您将在以下行中执行此操作
-
$dismissButton.attr('id', 'dismissButton');
-
$pTitle.attr('id', 'title');
-
$para.attr('id', 'message');
-
$li1.attr('id', 'okButton');
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 禁用旋转木马中的下一个按钮和上一个按钮
- 做一个复活节彩蛋,JS动作点击5个按钮
- 如何在用户返回和上一个按钮时刷新下拉列表
- 测试一个简单的javascript按钮
- 如何创建一个“;显示更多“;按钮,并指定最初可以显示的文本行数
- 简单的垂直上一个和下一个按钮代码点击上下移动jQuery
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- HTML5历史记录-返回上一个完整页面按钮
- 两个提交按钮(一个隐藏,一个可见)
- 击倒阵列按钮一个功能
- 如何为jQuery中的每个数组元素附加不同的动画效果?并用2个按钮一个接一个地向前和向后设置动画(后退和下一步)
- 两个按钮一个窗体
- 如何提交单个表单并使用两个提交按钮一个按钮单击然后验证
- Jquery表单-两个按钮-一个使用ajax,一个不使用
- 多个PHP按钮?(一个按钮是提交按钮,其他按钮是函数)
- PHP表单- 2个按钮(一个销毁会话和重新加载页面和一个继续到下一页)
- 给按钮一个类,并使用javascript来挑选点击事件不工作