jQuery .click()无效,而其他jQuery函数执行

时间:2015-11-07 16:52:14

标签: javascript jquery html greasemonkey

我试图创建一个Greasemonkey用户脚本,点击页面上的一个div。他们没有引用链接,更可能是JS / Ajax功能,但我无法判断这是否属实。所以问题是这个脚本什么都不做。 Jquery函数如.remove()工作,但.click()不工作。究竟出了什么问题?我试着在这个主题上搜索问题,但似乎都没有帮助。

页面上的代码:

        <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(); 

不起作用。

Upd:还有一个jquery代码,但是它放在我上面发布的元素之外(#offer.left是一个元素,其中一个被点击的项目应该在它之后出现&#39 ; s点击)。

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

3 个答案:

答案 0 :(得分:1)

您的代码按预期工作:http://jsfiddle.net/5zddqx28/

JS:

$( document ).ready(function() {

    $('.oitm[style*="display: block"]').click(function() {
        alert('clicked');
    });

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

    $(reqItem).click();

});

确保在<{1}} .click();电话前点击 onclick听众。

答案 1 :(得分: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/

答案 2 :(得分:0)

查看style属性的选择器仅适用于以完全相同的方式格式化样式的浏览器,或者在解析代码时将属性保留为原始格式。您可以使用doPut选择器查找可见元素:

:visible