2015-11-07 84 views
0

我想創建一個Greasemonkey userscript,它將點擊頁面上的一個divs。他們沒有提到一個鏈接,更可能是一個JS/Ajax函數,但我不知道這是否屬實。所以問題是這個腳本什麼都不做。 Jquery的功能類似.remove()工作,但.click()不工作。究竟是什麼錯誤?我試圖在這個主題上尋找問題,但似乎沒有任何幫助。頁面上jQuery .click()不工作,而其他jQuery功能做

代碼:

 <div style="display: block;" class="oitm"> 
      <div class="item"> 
      <img class="smallimg" src=""> 
    </div></div> 
<div style="display: none;" class="oitm"> 
      <div class="item"> 
      <img class="smallimg" src=""> 
    </div></div> 

我的代碼:

$(document).ready(function() { 
     var reqItem = $('.oitm[style*="display: block"]'); 
     $(reqItem).click(); 
}); 

請注意,

reqItem.click(); 

不能正常工作。

更新:還有一個jQuery代碼,但它放置在我上面發佈的元素之外(#offer.left是點擊項目應該在點擊後顯示的元素)。

<script> 
$("#offer").on("click", ".item", function() { 
    if ($('#offer .left').children().size() < 9) { 
     $(this).parent().appendTo('#offer .left'); 
    } 
}); 
</script> 
+0

是您希望被調用的點擊處理程序,是一個jQuery點擊處理程序嗎?或者是用'.addEventListener()'或'onclick = xxx'註冊? – jfriend00

+0

您確定要點擊div標籤嗎? – divix

+0

@ jfriend00我剛剛發現它是一個

0

你的代碼工作正常:

<div style="display: block;" class="oitm"> 
     <div class="item">Top Div 
      <img class="smallimg" src=""> 
     </div> 
</div> 
<div style="display: none;" class="oitm"> 
     <div class="item">Bottom Div 
      <img class="smallimg" src=""> 
     </div> 
</div> 

$(document).ready(function() { 

    var reqItem = $('.oitm[style*="display: block"]').click(); 

    $(reqItem).on('click',function(){ alert('I was clicked'); }); 

    $(reqItem).click(); 

}); 

https://jsfiddle.net/7xnLoumt/

+1

請記住,這是一個GreaseMonkey情況,很可能與您的簡單示例不同。 – jfriend00

+0

的確,我第二。 –

+0

'.on()'在這個答案中是錯誤的。它需要觸發'.item'來匹配問題。 –

0

自己看樣式屬性只適用於在這樣認爲的格式化風格的瀏覽器,或離開屬性在原始格式選擇器當代碼被解析時。您可以使用:visible選擇器來查找可見元素:

var reqItem = $('.oitm:visible');