0

我需要在准备好的文档上使用该功能。

我试过这段代码:(这不能正常工作。

感谢您的建议。

$(document).live('ready', function() {

 $(".icons").contextMenu(
                { 
                    menu: 'menuIcons'                    
                }, 
                function(action, el, pos) 
                { 
                    contextMenuWork(action, el, pos); 
                }); 

function contextMenuWork(action, el, pos) {
            switch (action) {
                case "open":
                    {
                        alert("open");
                        break;
                    }
            }
            }


});
4

4 回答 4

1

$(document).live()没有真正的意义,因为只能有一个document,并且如果不重新加载页面就永远无法重新创建它。

你想打电话:

$(document).ready(function() {...

如果documentDOM 对象已经加载,jQuery 会立即调用你的函数。

于 2011-09-15T13:49:41.997 回答
1

试试这个:

function contextMenuWork(action, el, pos) {
  switch (action) {
    case "open": {
      alert("open");
      break;
    }
  }
}
$(".icons:not(.live)").live('click',function(e){
  if (e.which === 2) {
    e.preventDefault();
    $(this).addClass('live').contextMenu({ 
      menu: 'menuIcons'                    
    }, 
    function(action, el, pos) { 
      contextMenuWork(action, el, pos); 
    }).trigger({type:'mousedown',button:2}).trigger({type:'mouseup'});
  }
});

当元素被右键单击时,它使用后期绑定来绑定事件;然后它重新触发右键单击事件。

于 2011-09-15T14:35:17.600 回答
1

在您的 AJAX 代码中,当您知道可以将插件附加到 DOM 时,您可以在该数据上绑定哪些数据

(function() {
    var contextMenuWork = function(action, el, pos) {
        switch (action) {
            case "open":
            {
                alert("open");
                break;
            }
        }
    };

    $.ajax({
        url: myUrl,
        success: function( data ) {

        $("body").replaceWith(data); // Example!

        $(".icons", data).contextMenu({
            menu: 'menuIcons'                    
        }, function(action, el, pos) {
            contextMenuWork(action, el, pos); 
        }); 

        }
    });
})();
于 2011-09-15T14:44:29.847 回答
0

查看 liveready 插件:

http://startbigthinksmall.wordpress.com/2011/04/20/announcing-jquery-live-ready-1-0-release/

于 2012-11-12T09:42:51.340 回答