2015-11-07 58 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');