zhans52
2011-08-10 17:59
浏览 239

Jquery 插件开发的时候如何传递this

小弟刚接触JQuery不久
在开发插件的时候遇到一个问题,给button添加事件的时候要用this的参数,但是this在click的函数中就是button,怎么样才能使用插件this呢。
代码
[code="java"]
$.portalui.button.prototype={
url:"test",
render:function(){
var _a=this;
var _p=this.path;
_p.click(
function(){
alert(this.url);//这里如何实现是 test呢
}
);
}
[/code]
谢谢

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • suziwen 2011-08-11 09:44
    已采纳

    jquery的话可以这样试试

    [code="js"]
    function handler(event) {
    alert(event.data.foo);
    }
    $("p").bind("click", {foo: "bar"}, handler)

    $.portalui.button.prototype={
    url:"test",
    render:function(){
    var _a=this;
    var _p=this.path;
    //_p得是jquery包装过的$
    _p.bind("click", {self: _a}, _a.save);
    },
    sava:function(event){console.info(event.data.self)}//我想让这里的this为全局个this而不是单独的button
    }
    [/code]

    打赏 评论
  • myali88 2011-08-10 18:02

    [quote]怎么样才能使用插件this呢。 [/quote]
    插件的this指的是谁呢?你的代码上可以说明吗?

    打赏 评论
  • suziwen 2011-08-10 20:27

    你的代码已经自己解决了啊

    [code="js"]$.portalui.button.prototype={
    url:"test",
    render:function(){
    var _a=this;
    var _p=this.path;
    _p.click(
    function(){
    alert(_a.url);//这里如何实现是 test呢
    }
    );
    }
    [/code]

    你看很多插件
    写成这样
    var _self = this;

    然后
    在click里调时就用_self

    跟你的变量_a一样的

    打赏 评论

相关推荐 更多相似问题