jQuery

时间:2015-11-17 02:43:47

标签: javascript jquery hover click mouse

// ==UserScript==
// @name         Vulcun Jackpot Autoclicker
// @namespace    http://your.homepage/
// @version      0.35
// @description  enter something useful
// @author       You
// @match        https://vulcun.com/user/jackpot
// @grant        none
// ==/UserScript==

function enterContest() {
$('#submit-wager').each(function() {
    if($(this).attr('disabled') == 'disabled') {
       console.log("button disabled: skipped");
       return;
    }

    console.log(this);
    this.click();
    console.log("Button clicked");

});
}

setInterval(enterContest, 30000);

此代码不是我的,只是为了说清楚。代码确实有效,但我想添加它。第19行中的this.click();完成了它的工作,但是我想在行中添加一些东西,在它之前,类似this.hover();this.mouseover();的东西我是新手。被点击的对象需要在点击之前识别出鼠标悬停在它上面。在我必须将我的实际鼠标放在对象上之前,我希望该过程继续进行而不需要使用我的实际鼠标。我发现this.hover();this.mouseover();不是正确的功能。那么适当的功能或代码是什么?基本上我想制作一个虚拟鼠标,以便对象认为它被我的真实鼠标触及,但事实并非如此。

编辑:修正版:

// ==UserScript==
// @name         Vulcun Jackpot Autoclickerfix
// @namespace    http://your.homepage/
// @version      0.35
// @description  enter something useful
// @author       You
// @match        https://vulcun.com/user/jackpot
// @grant        none
// ==/UserScript==

function enterContest() {
$('#submit-wager').each(function() {
    if($(this).attr('disabled') == 'disabled') {
      console.log("button disabled: skipped");
       //return;
    }else{
        $(this).trigger('mouseover').trigger('click').trigger('mouseleave');
    }
});
}
$('#submit-wager').on('click', function(){
    console.log('Input Pressed');
});
$('#submit-wager').on('mouseover', function(){
    $(this).addClass('addThisClass');
    console.log('touch');
});
$('#submit-wager').on('mouseleave', function(){
    $(this).removeClass('addThisClass');
});

setInterval(enterContest, 30000);

2 个答案:

答案 0 :(得分:0)

您必须在each方法($(this))中选择当前元素。将this.click();更改为$(this).click();。正如@ Mohamed-Yousef所说,身份证必须是独一无二的。根据{{​​3}}:

  

id属性

     

id属性指定其元素的唯一标识符(ID)。该   value必须在元素的home子树中的所有ID中唯一   并且必须至少包含一个字符。该值不得包含   任何空格字符。

function enterContest() {
$('#submit-wager').each(function() {
    if($(this).attr('disabled') == 'disabled') {
       console.log("button disabled: skipped");
       return;
    }

    console.log($(this));
    $(this).click();
    console.log("Button clicked");

});
}

setInterval(enterContest, 30000);

答案 1 :(得分:0)

首先,您要遍历#submit-wager并且必须知道(ID必须是唯一的),因此将id="submit-wager"更改为class="submit-wager"并循环播放

$('.submit-wager').each(function() {

第二名:对于触发器mouseover,您可以使用

$(this).trigger('mouseover');

Demo to how to deal with this