如何使用html标记属性中的URL打开jQuery popupWindow?

时间:2012-04-25 19:59:16

标签: jquery popup

我正在使用这个jQuery插件:http://swip.codylindley.com/popupWindowDemo.html这看起来很棒。我的jQuery代码附加到库存表中的表行,如下所示:

$("tr").popupWindow({windowURL:$(this).attr("url"),windowName:'Details', centerScreen: true});

HTML(来自PHP)看起来像这样:

echo "<tr url=\"details.php?id=$idNum\"><td>$idNum</td>"; 

无论出于何种原因,$(this).attr(“url”)表达式都是未定义的。任何建议将不胜感激,谢谢!

编辑1:也许这与this关键字有关并且是范围问题?

编辑2:我决定将jQuery代码移动到每个代码旁边。这似乎是一个糟糕的解决方案,但它绕过任何范围问题和工作。它现在看起来像这样:

echo "<tr id=\"$idNum\"><td>$idNum</td>";
echo "<script type=\"text/javascript\">
    $('#$idNum').popupWindow({
    windowURL:'details.php?tag=$idNum'
    });</script>";

感谢您帮助我寻找合适的解决方案......如果我最终发现它,我会回来更新此信息,但现在这个问题仍然存在。

2 个答案:

答案 0 :(得分:0)

不要创建非标准属性。使用HTML5的data-属性,这些属性用于存储内容:

$("tr").popupWindow({windowURL:$(this).data("url"),windowName:'Details', centerScreen: true});

改变你的PHP:

echo "<tr data-url=\"details.php?id=$idNum\"><td>$idNum</td>"; 

答案 1 :(得分:0)

鉴于提供的代码,无法确定地调用“this”的上下文。你肯定试图用它来引用一个DOM元素,但它返回“undefined”,因为“this”实际上指的是没有“url”属性。如果您为A标签分配了一个类或ID,那么您可能会获得更多成功......

这是一些经过修改的HTML(来自PHP):

echo "<tr><td><a id=\"$idNum\" href=\"details.php?id=$idNum\">$idNum</a></td>";     

这是你的jQuery代码:

$("#myRow").popupWindow({windowURL:$("#" + $idNum).attr("href"),windowName:'Details', centerScreen: true});

我没有测试过,但我认为这对你有用。让我知道它是怎么回事。