English 中文(简体)
使用jQuery的each()函数在JavaScript中实现“Cleaner (嵌套式)闭包”。
原标题:
  • 时间:2009-01-16 21:51:55
  •  标签:

我想知道在以下JavaScript代码中是否有一种更干净(更简洁)的方法来执行each()的操作。

$(".moreinfodialog")
    .before( <a href="#">Click for more info.</a> )
    .each(function() {
        var temp = this;
        $(this).prev("a").click(function() {
            $(temp).dialog("open");
            return false;
        });
    })
    .dialog({ autoOpen: false, modal: true });

请注意,最后一个调用重新排列了dom元素,因此.moreinfodialog类不再与hrefs相邻。

顺便说一句:此来源使用jquery / jquery-ui对话框来隐藏带有 .moreinfodialog 类的div中的任何文本,并用单击以获取更多信息。文本替换它。当单击该文本时,将显示包含原始div中文本的对话框。

最佳回答

编辑:此答案适用于旧版本的jQuery。在新版本中, $.map 的工作方式不同。

请查看$.map()函数,该函数用于对数组中的每个元素执行相同的操作。

$( .moreinfodialog ).map(function(idx, element) {
    $(this).prev("a").click(function() {
            $(element).dialog("open");
            return false;
    });
});
问题回答

暂无回答




相关问题
热门标签