我正在尝试使数据表在单击时展开以显示更多信息。问题是我正在通过大约 1000 条记录填充表,所以我可以保留更多详细信息数据(扩展内容)的唯一方法是在循环过程中通过链接发送数据,就像这样......
var imgCell = '<a href="javascript:storeInfo("'+theFilePath+'","'+theWebAddress+'","'+projectStatus+'");"><img src="https://cubistmediagroup.sharepoint.com/sites/canvas/PublishingImages/details_open.png"></a>';
这样就创建了一个在单击时调用此函数的图像链接...
function storeInfo (filePath, webAddress, projectStatus)
{
theFilePath = filePath;
theWebAddress = webAddress;
switch(projectStatus){
case "New Work - Waiting Activation":
controlButton("NewWork", NewWorkTable);
break;
case "Active Projects":
controlButton("ActiveProjects", ActiveProjectsTable);
break;
case "Waiting for Assets or Approvals":
controlButton("WaitingAssets", WaitingAssetsTable);
break;
//AND A WHOLE LOT MORE CASES
}
}
基本上,此函数将文件路径和网址保存到全局变量以供以后使用,然后调用controlButton
函数...
function controlButton (projectStatus, theTable){
$('#'+projectStatus+' tbody td img').live('click', function () {
var nTr = this.parentNode.parentNode.parentNode;
if ( this.src.match('details_close') )
{
// This row is already open - close it
this.src = "https://cubistmediagroup.sharepoint.com/sites/canvas/PublishingImages/details_open.png";
theTable.fnClose( nTr );
}
else
{
// Open this row
this.src = "https://cubistmediagroup.sharepoint.com/sites/canvas/PublishingImages/details_close.png";
theTable.fnOpen( nTr, fnFormatDetails(theTable, nTr), 'details' );
}
});
}
这样做是在 html 表中获取 img,然后找到其所在的行,然后调用一个打开或关闭可扩展数据的函数......这是通过 fnOpen
和fnClose
使用fnFormatDetails
来填充可扩展行来完成的......
这一切都很好,花花公子,一切都被正确传递并加载很好,但唯一的问题是它需要两次点击来打开和关闭可扩展行......一次是图像上的链接,然后是另一个调用 jQuery 函数。我需要一种方法来解决这个问题,只需单击一下,同时仍然为每个单独的条目加载数据......我在想最好的方法是找到一种方法来调用 jQuery 函数而.live('click', function()
无需需要第二次点击。
有什么建议么?