没有每个都有办法做到这一点吗?

时间:2011-06-09 15:10:49

标签: javascript jquery

我有很多表格单元格,我希望在悬停时显示工具提示。每个td元素都有一个rel属性,其中包含ajax的请求URI,用于将内容提取到工具提示中。现在我这样做:

$('table td.tooltipped').each(function() {
    var uri = $(this).attr("rel");
    $(this).bt({
        ajaxPath: uri,
        ajaxError: "<strong>Error!</strong> Here's what we know: <em>%error</em>."
    });
});

对我来说似乎有点多余,但我无法弄清楚如何在没有每个循环的情况下做到这一点。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

From the documentation:

  

Ajax动态路径:

     正在从链接的'href'值读取

AjaxPath 。这是通过将ajaxPath定义为数组来实现的。 数组的第一个值是用于查找路径值的jQuery代码(在本例中为“$(this).attr('href')”)...

所以看起来你可以这样做:

$('table td.tooltipped').bt({
    ajaxPath: ['$(this).attr("rel")'],
    ajaxError: "<strong>Error!</strong> Here's what we know: <em>%error</em>."
});

我会让你测试一下。

答案 1 :(得分:1)

each没问题,因为.bt()可能无法在参数列表中处理每个元素本身的引用。如果需要,您可以保留uri声明,并节省一点内存:

$('table td.tooltipped').each(function() {
    $(this).bt({
        ajaxPath: $(this).attr("rel"),
        ajaxError: "<strong>Error!</strong> Here's what we know: <em>%error</em>."
    });
});