2011-11-18 69 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