$(this) 和 this 位于点击事件中

2023-12-14

我有一个自己的 js 类,并尝试在点击事件中使用 jquery 的 $(this) 和 object-this 。

jquery 的 $(this) 工作正常,但对象-this 未定义。

http://jsfiddle.net/j33Fx/2/

var myclass = function(){

    this.myfunction = function(){
        alert('myfunction');
    }

    this.buttonclicked = function(){
        alert('buttonclicked');
    }

    this.writeout = function(){
        var buttoncode = '<button class="mybutton">click</button>';
        $('body').append(buttoncode);

        $('.mybutton').click(function(){
            alert('Button: '+$(this).attr('class'));
            this.buttonclicked(); 
        });

        this.myfunction();
    }

}


var x = new myclass();
x.writeout();

当我单击附加按钮时,我收到带有按钮类名的警报,但我的函数“this.buttonclicked”似乎不是一个函数。

有任何想法吗?


this指在事件处理程序中调用事件的元素。您可以将当前对象缓存在其他变量中。后者可以使用。

use

this.writeout = function(){
    var buttoncode = '<button class="mybutton">click</button>';
    $('body').append(buttoncode);

    var _self = this; //cache current object

    $('.mybutton').click(function(){
        alert('Button: '+ $(this).attr('class')); //Here this refers to element which invoked the event.

        _self.buttonclicked(); //Use cached object
    });

    this.myfunction();
}

更新了小提琴

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

$(this) 和 this 位于点击事件中 的相关文章

随机推荐

  • 使用像 Spinner 这样的 jquery 增加文本输入的值

    尝试使用 Jquery 创建一个简单的旋转效果 即两个带有文本字段的按钮 向上和向下 向上按钮增加值 向下按钮减小值 增加步数 或 1 任何建议 如 ui spinner 都是最明确的 不工作 我是 jquery 新手 一定是这样的 up
  • 三星 Galaxy SIII 的相机是否存在缺陷?

    我使用以下代码启动相机 但是 有 3 4 的时间 照片没有保存到内存中 这种情况仅发生在 Galaxy SIII 上 它适用于 Nexus S 和 Nexus One public void photoNew holdingImage ge
  • 警告:内置函数“strlen”和“strcpy”的隐式声明不兼容[重复]

    这个问题在这里已经有答案了 我刚刚完成了我的刽子手游戏 作为最后一步 我正在进行一些代码清理和优化 但我似乎无法理解为什么我收到以下两个警告 警告 内置函数 strlen 的隐式声明不兼容 警告 内置函数 strcpy 的隐式声明不兼容 使
  • 如何退出独立模式或编辑器模式

    我在 Windows 10 64 位上使用 unity 5 4 1f1 Personal 我将解释我所做的所有步骤以及迄今为止我尝试过的所有事情 我第一次使用原始代码创建了一个新的 c 文件 现在 当我按 Escape 键时 它将返回编辑器
  • 内有较长任务的角间隔管道

    我的组件中有这段代码 ngOnInit this counterValue interval 1000 pipe switchMap gt this perfService getCounter this counterUrl map i
  • 为什么 $ra 被调用者保存在 RISC-V 中

    我发现在 RISC V 中 ra调用者是否已保存 以 MIPS 为单位 ra是被调用者 这意味着在 RISC V 中被调用者可以直接更改ra没有保存 但自从ra已经改变了 被调用者如何返回调用者 无论名称如何 RISC V ra 和 MIP
  • NSTimer 在 iPhone 中关闭应用程序后继续计数

    我有一个计时器 最多可以计时 8 小时 28800 秒 之后它应该被释放 我想知道如何让计时器在后台运行和 或在应用程序关闭时保持运行 这是 NSTimer stopWatchTimer NSTimer scheduledTimerWith
  • 如何在构建另一个容器期间填充 Mysql docker 容器?

    我正在尝试构建一个 docker compose 文件 该文件自动为我的应用程序构建一个容器和一个存储所有数据的 mysql 容器 在我的应用程序的 dockerfile 中 我有一个脚本 用于设置应用程序运行所需的所有数据库表和预设值 是
  • 将最近 7 天的 Windows 事件导出到 evt 文件

    很难相信我只花了一个小时在网上搜索 却找不到一个看似简单的请求的答案 我想要做的就是获取最近 7 天的 Windows 系统和应用程序事件 并将每个事件作为 evt 格式的文件导出到特定文件夹 所以不是 csv 或 xml 有没有一种简单的
  • 使用 AJAX - WooCommerce API 将变体添加到购物车?

    我有一个包含以下数据的项目 var item id 124 name xxx price 13 13 quantity 1 options size xl color pink 当用户单击 添加到购物车 时 我想使用 WC API 发出 A
  • 如果超过 12 列自动换行,我们真的需要关闭它吗?

    我已经使用 Bootstrap 一段时间了 特别是版本 3 并且注意到我仍然不确定是否应该始终在每 12 列之后关闭带有 row 类的列 或者我可以等待并在我的代码末尾应用该结束 row 只要据我所知 任何在单行中加起来超过 12 列的列都
  • 将 STUFF 与 INNER JOIN 查询结合使用

    我的数据库中有三个表 产品表 类型表和名为 Prod Type 的映射表 我的数据库是sql server 这就是为什么我不能使用group concat函数而我正在使用Stuff函数 我的表结构如下 产品表 Prod ID Name Br
  • Eclipse 构建路径不可用

    The build path option is not available when I right clicked on one of the the jars I wanted to include Anybody knows why
  • git 分支名称中的 Powershell 和德语变音符号

    我编写了一个批处理文件 它使用 powershell 命令删除除要保留的分支之外的所有本地 git 分支 如果分支名称中使用了德语变音符号 则不起作用 切换到分支 master 您的分支是最新的 origin master 已删除分支 DE
  • 如何使用 javascript 检索数组中 17 textBox 的值

    我写了下面的代码 太长了 我想要一些更短的代码 b 0 parseInt document getElementById textbox1 value b 1 parseInt document getElementById textbox
  • 从一个类访问另一个类的结构

    是否可以从另一个类访问结构 ex class A struct structOfClassA func returnLetterA gt String return a class B let classA A init classA st
  • 如何让 Gson 序列化基本名称值对列表?

    我正在尝试使用类型适配器和 Gson 序列化 BasicNameValuePairs 列表 ArrayList
  • 如何解码中文文本中的unicode

    with open result txt r as f data f read print What type is my data print type data for i in data print what is i print i
  • 重命名后Golang相对包导入

    我的 GOPATH 是 Users peter goworkspace 我当前的 golang 版本 go version go1 6 darwin amd64 我在这个工作区下有多个golang项目 所以这是目录结构 goworkspac
  • $(this) 和 this 位于点击事件中

    我有一个自己的 js 类 并尝试在点击事件中使用 jquery 的 this 和 object this jquery 的 this 工作正常 但对象 this 未定义 http jsfiddle net j33Fx 2 var mycla