停止使用jQuery运行的onclick方法

卡尔

我有一个类似于下面的按钮

<button id="uniqueId" onclick="runMethod(this)">Submit</button>

我想做的是停止运行runMethod,直到完成自己的检查为止。我试过使用该stopImmediatePropagation函数,但这似乎没有用。这是我的jQuery:

$j(document).on('click', '#uniqueId', function(event) {
    event.stopImmediatePropagation();
    if(condition == true) {
        // continue...
    } else {
        return false;
    }

    return false;
});

注意:runMethod基本上验证表单,然后触发提交。

安吉洛斯·查拉里斯(Angelos Chalaris)

您想做的事情,尤其是您想做的事情,需要某种变通的解决方法,但总会有些麻烦。最好更改按钮的行为方式(例如,处理jQueryclick()函数内部的整个click事件或类似行为的东西)。但是,基于您的用户首先将鼠标悬停在按钮上的假设,我发现了针对您的问题的某种解决方案。我确定您可以将该功能扩展到键盘的Tab事件,但是对于移动设备的触摸输入来说,可能无法完美使用。因此,请记住以下解决方案是针对您问题的半完全解决方法:

$(document).ready(function(){
    var methodToRun = "runMethod(this)";    // Store the value of the onclick attribute of your button.
    var condition = false;                  // Suppose it is enabled at first.
    $('#uniqueId').attr('onclick',null);
    $('#uniqueId').hover(function(){
        // Check your stuff here
        condition = !condition;     // This will change to both true and false as your hover in and out of the button.
        console.log(condition);     // Log the condition's value.
        if(condition == true){      
            $('#uniqueId').attr('onclick',methodToRun); // Enable the button's event before the click.
        }
    },
    function(){     
        console.log('inactive');    // When you stop hovering over the button, it will log this.
        $('#uniqueId').attr('onclick',null);    // Disable the on click event.
    });
});

它的作用是使用hover事件触发您的检查逻辑,并且当用户最终单击按钮时,如果逻辑正确,则启用该按钮,否则它将不执行任何操作。试试这个小提琴吧

PS:转换$$j需要适应这一点。

PS2:使用Javascript控制台检查小提琴的工作方式,因为它本身不会更改页面上的任何内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

停止使用JQuery提交提交按钮

来自分类Dev

有没有办法让我运行的方法立即停止使用cts.Cancel();

来自分类Dev

停止使用文件

来自分类Dev

禁用AspectJ停止使用if()方法和用户输入的方法

来自分类Dev

停止使用PHP和jQuery打印内容

来自分类Dev

停止使用其他屏幕尺寸的jquery。

来自分类Dev

如何停止使用 jquery 播放音频?

来自分类Dev

Confluence停止使用404

来自分类Dev

Firefox停止使用Selenium

来自分类Dev

如何停止使用AddressSanitizer?

来自分类Dev

如何停止使用其他Java程序运行程序

来自分类Dev

停止使用mdw文件选项运行访问的快捷方式失败

来自分类Dev

如何停止使用KeyEvent的控件?

来自分类Dev

停止使用Java播放声音

来自分类Dev

网站停止使用Chrome版本32

来自分类Dev

如何停止使用“ git commit -a”?

来自分类Dev

JavaScript停止使用表单标签

来自分类Dev

停止使用本地JavaScript提交表单

来自分类Dev

停止使用中的计时器

来自分类Dev

NEVPNManager停止使用iOS 14 Beta

来自分类Dev

Kafka ConcurrentMessageListenerContainer突然停止使用

来自分类Dev

停止使用Java播放声音

来自分类Dev

如何停止使用KeyEvent的控件?

来自分类Dev

停止使用Javascript进行表单操作

来自分类Dev

JavaScript停止使用表单标签

来自分类Dev

需要停止使用angularjs再次单击

来自分类Dev

如何停止使用ssh-agent?

来自分类Dev

如何停止使用Kazam录制

来自分类Dev

txtProgressBar突然停止使用style = 3