2013-08-20 55 views
0

我有以下設置:處理IE中的點擊次數

Js prototype lib。

具有調用一個函數排序以下的onClick事件跨度:

function onClickSuperFunction() { 
    alert('Super function called'); 
    // Bla bla bla many epic things 
    if (someCondition) { 
      $('selectorForSameSpan').click(); 
      // selectorForSameSpan is a selector for the element that was originally clicked (first click is manunal) 
    } 
} 

在IE之外的所有瀏覽器,一切正常。在IE中,點擊沒有被觸發(當我手動點擊元素時觸發,但不是來自「if」的事件)。另外,如果我改變選擇器並模擬點擊任何其他元素($('anyOtherSpanForExample')),它就可以正常工作(函數被調用)。

那麼...... IE是否阻止自動點擊相同的元素?也許反垃圾郵件的東西?還有......任何解決方法?我真的需要點擊。

注意:如果我使用原型「火」,同樣的事情發生。

謝謝你的幫助。

回答

1

PrototypeJS默認不支持觸發本機瀏覽器事件。

將Event.simulate添加到您的頁面,它將允許您在PrototypeJS支持的所有瀏覽器中觸發本機事件。

集成Event.simulate進入核心是計劃,在此期間,這裏是Github的要點

https://github.com/kangax/protolicious/blob/5b56fdafcd7d7662c9d648534225039b2e78e371/event.simulate.js

+0

泰,還是......爲什麼不本地調用的工作?通常我會問,爲什麼只有IE瀏覽器很糟糕,但是...我已經問過自己很多次了......根據IE的版本,它可能沒有'click()'方法在元素上,但已列出了 – zozo

+0

在事件緩存中。模擬方法可以爲您找到並從正確的位置開始。 –

+0

我知道,是一個很好的解決方案(因此是+1),但不幸的是我需要批准新的庫,這通常需要很長時間。所以直到他們批准我需要完成這個本地。 – zozo