JQuery将dom元素点击事件绑定(bind)到成员函数

标签 jquery function events bind anonymous

我有一个带有函数的 javascript 类:

function myClass()
{
    this.myInit = function()
    {
        myObj = this;
        var id-foo = 'myId';
        jQuery('#'+id-foo).bind('click', function() { myObj.foo(id-foo); } );
    }

    this.foo = function(id) { alert(id); }
}

我只想将 DOM 元素绑定(bind)到事件(单击、dragonstart 等)并使其调用当前对象的函数(实际上是这个)。我尝试直接调用 this.foo 但这不起作用,firebug 告诉我 foo 不是一个函数。我给匿名函数的参数 id-foo 是问题吗? 提前谢谢

最佳答案

您的问题在这里:

 var id-foo = 'myId';

这不是有效的变量名称。

另请注意,如果您不对 myClass 实例调用 myInit 函数,您的代码将无法工作。

例如,这是行不通的:

var obj = new myClass();
var f = obj.myInit;
f();

虽然这个应该可以工作:

var obj = new myClass();
obj.myInit();

DEMONSTRATION

关于JQuery将dom元素点击事件绑定(bind)到成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13083812/

相关文章:

java - JScrollBar 以编程方式

asp.net - 在 ASP .NET 页面生命周期中何时触发 DataBinding 事件?

jquery - Ctrl+ 或 Ctrl- 时字体大小调整

php - 当用户单击 href 链接时,如何使用 Javascript 和 jQuery 调用 PHP 页面?

C# vb : System. Func占用多少内存?

javascript - 从超链接调用 Javascript 函数

CSS 位置和不透明度样式干扰悬停和点击事件

javascript - 如何正确导入 CDN,包含 CSS 和 jQuery CDN 的代码有什么问题?

javascript - 如何创建动态命名的 JavaScript 对象属性?

javascript - 使用 getElementById 创建表仅显示最后一个实例