标题:jquery extend 的问题,麻烦高手解答下!
只看楼主
Johnsylm
Rank: 2
等 级:论坛游民
威 望:4
帖 子:26
专家分:20
注 册:2008-12-12
结帖率:100%
已结贴  问题点数:20 回复次数:2 
jquery extend 的问题,麻烦高手解答下!
我想完成右键的一个事件 ,可怎么也不能在插件内部得到插件对象 ,我写一段简单些代码说明我的纠结,希望高手解答 。
<script type='text/javascript'>
(function($){
  $.fn.ckx = function(opt){
    $(this).click(function(){alert(opt)}); // 这是有用的,这很简单,用 $(this) 就可以,但是 jQuery 可没有 contextmenu 这个事件,必须使用纯 JS 的 obj.ontextmenu 事件的 。
  // 所以,我想要知道的问题就是类似这样的写法(当然,语法错误):
    this.onClick = function(){
      alert(opt);
    }
  }
})(jQuery)
$.ready(function(){
  $('#xx').chx();
})
</script>
<div id='xx' style='width:50px;height:50px;background:#eee;'></div>
我想知道的就是怎样在那个类的内部获得 document.getElementById 的 xx ,而不是 $('#xx') ,换句话说,不是 $(this).
因为,$(this) = function 是不可行的 。
谢谢各位大虾,我Q:825313100
搜索更多相关主题的帖子: extend jquery 麻烦 解答 
2010-08-10 19:57
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
得分:20 
谁研究过jquery来看下吧 帮顶
2010-08-11 10:39
Johnsylm
Rank: 2
等 级:论坛游民
威 望:4
帖 子:26
专家分:20
注 册:2008-12-12
得分:0 
额 ,感谢你的帮顶 ,我已经解决了 。
可以运行下我的代码哈 ,现在右键点击特定的东西会有指定的 alert 。

程序代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. xmlns="http://www. >
  <head>
    <title>测试页面</title>
    <style type="text/css">
      div{margin:0px;padding:0px;overflow:hidden;}
      ul{list-style:none;padding:0px;margin:0px;overflow:hidden;}
      li{list-style:none;padding:0px;margin:0px;overflow:hidden;}
      #test{width:50px;height:50px;background:#eee;}
    </style>
    <script src="../jquery-1.4.2.js" type="text/javascript"></script>
    <script type='text/javascript'>
      (function($){
        $.fn.ctm = function(opt){
          var defaults = {id:$(this).attr('id')};
          opt = $.extend(defaults,opt);
          if(opt.id == '' || opt.id == null){ // 如果没有 ID ,也就是对 BODY 进行编程
            document.oncontextmenu = function(event){
              if (document.all){
                alert('我点了页面的空白地方!(IE)');
                window.event.returnValue = false;// for IE
              }else{
                alert('我点了页面的空白地方!');
                event.preventDefault();
              }
            }
          }else{
            document.getElementById(opt.id).oncontextmenu = function(event){
              if (document.all){
                alert('我用右键点击了元素 : '+opt.id+' (IE)!');
                window.event.cancelBubble=true; // IE 下面停止冒泡的方法
                window.event.returnValue = false;// for IE
              }else{
                alert('我用右键点击了元素 : '+opt.id+' !');
                event.stopPropagation(); // 非 IE 下面停止冒泡的方法
                event.preventDefault();
              }
            }
          }
        }
      })(jQuery);
      $(document).ready(function(){
        $('#test').ctm();
        $('body').ctm();
      });
    </script>
  </head>
  <body>
    <div id='test'></div>
  </body>
</html>


额,可以复制到本地运行(自己下一个 jQuery 丫!)

[ 本帖最后由 Johnsylm 于 2010-8-11 12:43 编辑 ]
收到的鲜花
  • qingshuiliu2010-08-11 12:40 送鲜花  2朵   附言:我很赞同,有问题自己搞定
2010-08-11 12:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-315355-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.115628 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved