【问题标题】:Does $(this).trigger('click') in jQuery replicate a physical mouse click?jQuery 中的 $(this).trigger('click') 是否复制物理鼠标点击?
【发布时间】:2012-06-08 14:10:51
【问题描述】:

有人能帮我解决以下问题吗:

我认为 $(this).trigger('click') 会复制用户的物理点击? 这是我在文本区域上移动时触发点击事件的代码:

<!DOCTYPE html>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function() {
    var getCursorPos = function(e){
        $(this).trigger('click');
        var $cursor_position = $(this).prop("selectionStart");
        $('#result').html('<p> Cursor position: ' + $cursor_position + '</p>');
        console.log("Auto click at ", $cursor_position, e.pageX, e.pageY);
    };
    $("#text").bind({
        mousemove: getCursorPos,
    });
});
</script>

<html>
    <div id="result"></div>
    <textarea id="text">This is some example text</textarea>
</html>

为什么触发点击事件后没有从textarea返回光标位置。如果我实际按下鼠标按钮,控制台读数会捕获光标位置。我认为 .trigger('click') 也会这样做。

当我将鼠标移到 textarea 上时,如何修复此代码以使其返回 textarea 中的光标位置?

非常感谢任何帮助。

马丁

【问题讨论】:

    标签: jquery onclick cursor textarea mouseover


    【解决方案1】:

    我认为 $(this).trigger('click') 会复制物理点击 用户制作的?

    确实如此,但目前$(this) 中的this 似乎并未引用您要单击的元素。

    尝试使用id 创建一个按钮,然后试试这个:

    $('#buttonID').trigger('click');
    

    或者简单地说:

    $('#buttonID').click();
    

    【讨论】:

    • @Martyn:这很简单,但我已经为您创建了一个演示,让您了解它是如何完成的,希望现在清楚:jsbin.com/ojedox/edit#javascript,html。点击那里的Render 按钮运行代码。
    • 感谢演示,我打算发送这个我认为是等效的(?):url
    • @Martyn:是的,它工作正常。您正在使用 mouseenter 它工作正常
    • 现在,如果我做类似的事情:jsfiddle.net/fD62H/1,并且更明确地说明事件的目标,即#text,编写触发事件和触发事件之间似乎仍然存在差异通过用户。控制台日志将e.pageXe.pageY 报告为未定义,直到用户单击,即使我触发了.click()。很奇怪吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2018-11-13
    • 2021-09-07
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多