2011-11-18 51 views
0

我知道浏览器不支持假点击。我知道我可以回去开始重构所有突兀的JavaScript ......但这不会发生。这就是说...jquery和浏览器假点击

继承人的事情。

我有一堆代表偏好的链接。 EX:(这是呈现的内容,下面创建这个实际的JSP是不好玩看。)

<table id="snTabsAvail" class="content" cellspacing="5" cellpadding="1" border="0" align="center"> 
<tbody> 
    <tr> 
    <td id="Serial Number_Engine Test_0" class="tbutton" width="95px" nowrap="" height="55px" style="background-color:lime"> 
     <a href="javascript:tabToggle('Serial Number', 'Engine Test', spref, 0, tabPicked, tabAvailable, 'Failed to update your tab preference, please try again later'); "> 
    </td> 
    <td id="Serial Number_Machine Test_1" class="tbutton" width="95px" nowrap="" height="55px" style="background-color:lime"> 
     <a href="javascript:tabToggle('Serial Number', 'Machine Test', spref, 1, tabPicked, tabAvailable, 'Failed to update your tab preference, please try again later'); "> 
    </td> 
... 

这些调用代表Ajax调用,它在服务器上设置首选项。我想包括一个全选和一个全部取消选择,所以我不必去,并单独点击所有。我知道我不能这样做

$('#snTabsAvail td[style=background-color:silver] a').click(); 

由于假点击问题。

由于这些是点击代表javascript ajax调用,我试图找出如何点击我想要的select,unselect。链接所在的单元格代表“选项卡”,您可以根据它们的背景颜色来确定选择哪些单元格......这就是为什么我说,表格中的任何单元格都具有未选定的背景颜色,可以获取锚点并单击,这不起作用。

有关如何获取所有锚点并假冒点击的想法?是的,我的意思是programmaticlly。

+0

据我所知,我们可以用'.click()'来模拟鼠标点击。你的意思是它不会工作,因为有> 1个链接对象?或者,因为点击触发了AJAX呼叫? – moey

+0

你不能.click()他们与jquey:问题是,你不能通过点击触发链接的默认操作。请参阅:http://forum.jquery.com/topic/jquery-a-0-click-not-working – user189265

回答

1

你可以在每一个环节(不知道是否要删除“的javascript:”部分)的href属性使用eval(),像这样:

eval($('#snTabsAvail a').attr('href').substring(11)); 

编辑:当然,这是一单个链接,您必须迭代$('#snTabsAvail a')返回的元素才能获得完整的解决方案。

+0

这是有用的,但我去试图改变它们从锚点基本上聚合一堆JavaScript函数,是执行,但问题是,IE浏览器没有更新与同时(或排队)阿贾克斯调用我喜欢的方式的DOM ..我结束了一堆“标签”,这是'本身点击'编程本身..但是dom从未更新过,所以这些变化在UI中显而易见。一旦我回到这一点,我将不得不重新考虑解决方案。 – user189265