简体   繁体   English

在选择器上触发点击事件

[英]triggering a click event on a selector

I'm trying to get a click event to go off manual for a plug-in that uses a selector. 我正在尝试获取单击事件以手动关闭使用选择器的插件。

plug-in set up. 插件设置。

 $( function ()
            {
                $.contextMenu( {
                    selector: '.context-menu-one',
                    callback: function ( key, options )
                    {
                        var m = "clicked: " + key;
                        window.console && console.log( m ) || alert( m );
                    },
                    items: {
                        "edit": { name: "Edit", icon: "edit" },
                        "cut": { name: "Cut", icon: "cut" },
                        "copy": { name: "Copy", icon: "copy" },
                        "paste": { name: "Paste", icon: "paste" },
                        "delete": { name: "Delete", icon: "delete" },
                        "sep1": "---------",
                        "quit": { name: "Quit", icon: "quit" }
                    }
                } );

                $( '.context-menu-one' ).on( 'click', function ( e )
                {
                    alert( 'clicked', this );
                } )
            } );

I tried two ways to fire but I'm not able to make it work. 我尝试了两种点火方法,但无法使其正常工作。 $( '.context-menu-one' ).trigger( 'click' ); $('.context-menu-one').trigger('click'); or $( '.context-menu-one' ).click(); 或$('.context-menu-one').click();

Is there a special way to fire on a selector. 是否有在选择器上触发的特殊方法。 I figured this was explained somewhere but my searching has reached its end. 我以为这是在某个地方解释的,但是我的搜索已经结束。

--------- update adding more of the surrounding code ----------- ---------更新添加更多周围的代码-----------

 //local functions
    $( function ()
    {//override right click.

        $( this ).bind( "contextmenu", function ( e )
        {
            alert( 1 );// users right clicked
            var overRide = true;

            //set up the right click menu
            $( function ()
            {
                $.contextMenu( {
                    selector: '.context-menu-one',
                    callback: function ( key, options )
                    {
                        var m = "clicked: " + key;
                        window.console && console.log( m ) || alert( m );
                    },
                    items: {
                        "edit": { name: "Edit", icon: "edit" },
                        "cut": { name: "Cut", icon: "cut" },
                        "copy": { name: "Copy", icon: "copy" },
                        "paste": { name: "Paste", icon: "paste" },
                        "delete": { name: "Delete", icon: "delete" },
                        "sep1": "---------",
                        "quit": { name: "Quit", icon: "quit" }
                    }
                } );

                $( '.context-menu-one' ).on( 'click', function ( e )
                {
                    alert( 'clicked', this );
                } )
            } );

            //bring up the menu
            $( '.context-menu-one' ).trigger( {
                type: 'mousedown',
                which: 1
            } );

            if (overRide)  e.preventDefault();
        } );
    } );

My intent here is simply to trigger a right click so that the menu comes up manually not based on an event. 我的目的仅仅是触发右键单击,这样菜单就不会根据事件手动出现。

Based on documentation taken from documentation demo . 基于从文档演示中获取的文档。 Following example waits for document to load and after a delay of 1 second programatically opens context menu: 以下示例等待文档加载,并在延迟1秒后以编程方式打开上下文菜单:

<body>
    <div class="dummyDiv box menu-1"/>
</body>
<script>
$(function(){
    $.contextMenu({
        selector: '.dummyDiv', 
        trigger: 'none',
        items: {
            "edit": {name: "Edit", icon: "edit"},
            "cut": {name: "Cut", icon: "cut"},
            "copy": {name: "Copy", icon: "copy"},
            "paste": {name: "Paste", icon: "paste"},
            "delete": {name: "Delete", icon: "delete"},
            "sep1": "---------",
            "quit": {name: "Quit", icon: "quit"}
        }
    });

    setTimeout(function(){
        $('.dummyDiv').contextMenu();
    }, 1000);       
 });
</script>

Try triggering it by: 尝试通过以下方式触发它:

$('.context-menu-one').trigger({
    type: 'mousedown',
    which: 1
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM