社区首页 >问答首页 >将函数绑定到其他作用域上的onClick

将函数绑定到其他作用域上的onClick
EN

Stack Overflow用户
提问于 2012-08-06 08:31:01
回答 3查看 796关注 0票数 4

我正在尝试将一个函数绑定到锚"onclick“属性。我没有使用传统的jQuery的bind/live/on/任何东西,因为我有一些其他的脚本来停止事件传播(我知道这很糟糕)。

为了将函数绑定到"onclick“属性,我将一个JSON对象传递给一个模块,如下所示:

代码语言:javascript
代码运行次数:0
复制
function foo() {
  alert('foo')
}

$('document').ready(function() {
    var options = {
        opt1: 'fooID',
        opt2: 'barID',
        json: mightyJSON,
        actions: [
            { url: 'contact/_id_/edit', text: "Edit", iconPath: 'edit.png' },
            { url: '#', onClick: foo, text: "Delete", iconPath: 'delete.png' }
        ]
    };

    var trolol = myModule.configure(options);
});

如您所见,名为"foo“的函数是通过JSON的"onClick”属性传递的。该函数定义在对象的上方。

在"myModule“中,我像这样创建锚标记:

代码语言:javascript
代码运行次数:0
复制
var buildLinks = function(objectID)
{
  var linksNbr = actions.length;
  var link, cssClass;

  for (var i = 0; i < linksNbr; i++)
  {
    // Adding the object ID to the URL
    link     = actions[i].url.replace('_id_', objectID);
    cssClass = actions[i].cssClass || '';

    var $link = $(document.createElement('a')).attr('onClick', actions[i].onClick)
                                              .attr('href', link)
                                              .attr('title', actions[i].text)
                                              .addClass(cssClass)
                                              .text('foo');
  }

  return $link.html();
};

事情是这样的,正如你所期望的,'foo‘是在脚本被解析时执行的,而且只在那里执行。之后,"onclick“就不起作用了。

我可以像这样传递它,onClick: 'foo()'。onclick可以工作,但它也是在解析时执行的,在我看来,它非常丑陋。

我希望仍然能够像这个onClick: foo一样传递它,但工作正常(即不是在加载时执行,而是只有在单击时执行。

不幸的是,它必须与jQuery 1.4.4一起工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-06 08:44:05

我会这样做:

代码语言:javascript
代码运行次数:0
复制
var $link = $('<a></a>',{
    href : link,
    title : actions[i].text,
    'class' : cssClass,
    text : 'foo',
    click : actions[i].onclick
})
return $link;

然后使用这些(12)函数中的一个来插入节点,即带有事件的html。

对于传播问题,我会这样做:

超文本标记语言<a href="#no" ....>text</a>

js $('a[href="#no"]').live('click',function(){ return false; });

这样,每当href指向#no时,最终都会传播事件

票数 0
EN

Stack Overflow用户

发布于 2012-08-06 08:38:10

如果可能的话,返回元素,而不是它的.html()

  • having。当你已经有一个函数引用时,不要使用.attr('onclick', ...),使用.prop,甚至只使用

例如:

代码语言:javascript
代码运行次数:0
复制
$link = $('<a>', {
    href: link,
    title: actions[i].text,
    'class': cssClass,
    text: 'foo'
}).prop('onclick', actions[i].onClick);
票数 0
EN

Stack Overflow用户

发布于 2012-08-06 09:02:22

这是一个fiddle snippet。如果这种方法可以,您可以在jquery的原始元素上设置onclick,如下所示:

代码语言:javascript
代码运行次数:0
复制
$link[0].onclick = options.actions[i].onClick;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11824878

复制
相关文章
如何存储用户的密码才能算安全?
前段时间将一个集成了 spring-security-oauth2 的旧项目改造了一番,将 springboot 升级成了 springboot 2.0,众所周知 springboot 2.0 依赖的是 spring5,并且许多相关的依赖都发生了较大的改动,与本文相关的改动罗列如下,有兴趣的同学可以参考:Spring Security 5.0 New Features 。其中一个比较有意思的改动---- Spring Security 5.0 重构了密码编码器的实现(Password Encoding,由于大多数 PasswordEncoder 相关的算法是 hash 算法,所以本文将 PasswordEncoder 翻译成‘密码编码器’和并非‘密码加密器’),引起了我兴趣官方称之为
kirito-moe
2018/07/25
1.4K0
如何存储用户的密码才能算安全?
针对每个用户的作业(针对用户的定期事件)
-----------------------------------------------------------------------------------------------------------------------------
liulun
2022/05/09
3000
C语言 | 统计选票结果的程序
例38:有三个候选人,每个选民只能投给一个人,要求用C语言编一个统计选票的程序,先后输入备选人的的名字,最后输出各人的得票结果。
小林C语言
2020/12/18
2K0
C语言 | 统计选票结果的程序
为每个用户设置合适的屏幕亮度
移动设备的屏幕对于用户体验至关重要。Android 9 Pie 中改进的 “自动调节亮度” 特性会自动将屏幕调整到您偏好的亮度级别,使您在任何光线条件下都能获得最佳体验。
Android 开发者
2018/12/19
1.6K0
如何安全传输与存储用户密码?
我们开发网站或者APP的时候,首先要解决的问题,就是「如何安全传输和存储用户的密码」。一些大公司的用户数据库泄露事件也时有发生,带来非常大的负面影响。因此,如何安全传输存储用户密码,是每位程序员必备的基础。本文将跟大家一起学习,如何安全传输存储用户的密码。
macrozheng
2021/01/08
1.3K0
如何安全传输与存储用户密码?
如何查看每个城市的生意如何?
”销售订单表”记录了销售情况,每一张数据表示哪位顾客、在哪一天、哪个网点购买了什么产品,购买的数量是多少,以及对应产品的零售价
猴子数据分析
2022/02/12
1.3K0
如何查看每个城市的生意如何?
闲聊用户画像的存储
现在的用户画像,动不动就是几千几万个标签,标签一多就出现了一些需要克服的难题,比如下面两个:
木东居士
2019/02/28
3.6K0
Redis 如何存储上亿级别的用户状态?
如何用redis存储统计1亿用户一年的登陆情况,并快速检索任意时间窗口内的活跃用户数量。
芋道源码
2021/01/25
1.4K0
Redis 如何存储上亿级别的用户状态?
Redis 如何存储上亿级别的用户状态?
如何用redis存储统计1亿用户一年的登陆情况,并快速检索任意时间窗口内的活跃用户数量。
肉眼品世界
2021/01/25
7010
Redis 如何存储上亿级别的用户状态?
mysql查询每个用户的第一条记录_mysql怎么创建用户
方法1:查询出结果后将时间排序后取第一条(只能取到一条,并且不能查询不同客户的记录)
全栈程序员站长
2022/10/04
6.9K0
mysql查询每个用户的第一条记录_mysql怎么创建用户
Redis 如何存储上亿级别的用户状态?
如何用redis存储统计1亿用户一年的登陆情况,并快速检索任意时间窗口内的活跃用户数量。
二哥聊运营工具
2021/12/17
6690
Redis 如何存储上亿级别的用户状态?
用户密码传输和存储的保护
软件设计的过程中,用户的密码信息最为敏感,在进行用户登录验证时,除了将密码在传输的过程中,进行md5加密,避免密码明文传输过程中被截获外,还有一个就是密码在数据库中的存储安全问题。 常用的方案是对密码
码农阿宇
2018/04/18
1.1K0
用户密码传输和存储的保护
hive sql(六)—— 每个用户连续登录最大天数
分析中第3点在hive sql系列(三)中计算连续日活中也用到了日期差值,参考链接:
大数据最后一公里
2021/08/05
3K0
每个用户都应该知道的Ubuntu键盘快捷键
无论使用什么操作系统,键盘快捷键都可以帮助你快速上手,可以在启动应用程序或导航到所需窗口时节省时间和精力。
用户6543014
2020/03/11
2.5K0
打造用户态存储利器,基于SPDK的存储引擎Blobstore & BlobFS
Blobstore是位于SPDK bdev之上的Blob管理层,用于与用户态文件系统Blobstore Filesystem (BlobFS)集成,从而代替传统的文件系统,支持更上层的服务,如数据库MySQL、K-V存储引擎Rocksdb以及分布式存储系统Ceph、Cassandra等。以Rocksdb为例,通过BlobFS作为Rocksdb的存储后端的优势在于,I/O经由BlobFS与Blobstore下发到bdev,随后由SPDK用户态driver写入磁盘。整个I/O流从发起到落盘均在用户态操作,完全bypass内核。此外,可以充分利用SPDK所提供的异步、无锁化、Zero Copy、轮询等机制,大幅度减少额外的系统开销。它们之间的关系如下所示(以NVMe bdev为例):
Linux阅码场
2019/06/05
4.9K0
打造用户态存储利器,基于SPDK的存储引擎Blobstore & BlobFS
如何给每个RM添加约束?
在DFX设计中,我们也会碰到类似的情形,即给同一个RP(Reconfigurable Partition)下的不同RM(Reconfigurable Module)添加不同的约束。这时要考虑几个因素:同一个RP下不管有几个RM,在设计中均对应同一个实例化的名字。这意味着不能仅仅通过SCOPE_TO_CELLS将这些约束对应到不同的RM上。另外,每个RM只有在自身对应的configuration上才有效,所以要保证在这个configuration上对应的RM的约束也要有效。从下图可以看到,当前这个DFX设计中有一个RP,名字为图中红色方框所示,该RP下有两个RM,分别为rp1rm1和rp1rm2。
Lauren的FPGA
2023/08/18
2110
如何给每个RM添加约束?
MySQL存储过程,视图,用户管理
一张虚拟表,就是将一个经常被使用的查询作为一个虚拟表,开发者查询的时候不需要再次书写SQL,而是直接调用对应的视图就可,调用视图以后MySQL会执行这个查询SQL。
石的三次方
2021/01/05
9330
Spring Security 简单配置用户存储
@EnableWebSecurity注解将会启动Web安全功能,但它本身并没有什么功能。Spring Security必须配置在一个实现了WebSecurityConfigurer的bean中,或者扩展WebSecurityConfigurerAdapter,扩展该类是最简单的配置方法。
Tim在路上
2020/08/04
7800
保存用户信息到本地存储
简介:在页面加载时从本地存储中恢复数据,并将已保存的数据显示在对应的输入框中。一起来看看:
Dabenshi
2023/08/27
2660
点击加载更多

相似问题

查询Django中每个用户的最新选票

12

Android固定设置限制为每个用户1张选票

20

用于捕获选票和聚合选票的数据存储

13

确保数据库中每个用户、每个页面都有一张选票

31

Rails:允许用户销毁选票

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文