如何向 jQuery click 函数发送多个参数?

Posted

技术标签:

【中文标题】如何向 jQuery click 函数发送多个参数?【英文标题】:How to send multiple arguments to jQuery click function? 【发布时间】:2010-12-05 04:42:36 【问题描述】:

目前我正在使用类似的东西:

$('.myclass').click(function()  
    var msg = $(this).attr('id');  
    alert(msg)
);

还有 html

< a href="#" class="myclass" id="101">Link</a>

如果我需要其他参数,我将如何阅读它们?我目前使用的方式也是正确的方式吗?最初我使用的是隐藏的输入字段,所以它已经是一个进步了。 :p

【问题讨论】:

以数字开头的 id 被认为是不好的约定,但如果您不使用它作为 id,那么可能没问题 - 上次我检查时,Firefox 无法识别以数字开头。 是的,这是正确的 fudgey... 不要以数字开头,但我的回答中的想法仍然相同。 【参考方案1】:

jQuery Events

jQuery .click()

$('.myclass').bind("click",  Param1: "", Param2: 2 , function(event)
    alert(event.data.Param2);
);

【讨论】:

这是否意味着我必须在同一页面上包含此功能?目前我所有的 js 东西都在一个单独的文件中。 所以,我在事件数据中可以传递整个 json 对象,不是吗?不错的功能。 @Roger 您也可以在外部使用该函数,只需确保使用 event.data.ParamX 方法解析外部函数中的参数,如回复所示。效果很好。【参考方案2】:

您可以使用bind() 并将附加数据作为event.data 发送到事件处理程序

【讨论】:

【参考方案3】:

这可能不是最好的方法,但我所做的是用连字符来描述 id 属性与其他参数,例如id="101-red-420582",这三个含义不同,可以使用split() 函数轻松分解。本身不是最好的,但我已经做到了,而且效果很好。

【讨论】:

巧合的是我想出了这个确切的想法,它工作正常,但就像你说的不太确定它是否正确,有时字符串可能会变得很大(不确定是否有限制id)。 我一直使用类似的方法,但我使用的是 'rel' 属性而不是 'id'。我相信其中任何一个都会包含您需要的尽可能多的信息,包括 HTML。【参考方案4】:

快速解决方案

&lt;p class="msg_head" id="837" rel="a" **till_limit="9"**&gt;Header-1 &lt;/p&gt;

你可以参考

 $(this).attr('till_limit');

这是类似的解决方案,例如定义您自己的 ID 并根据您的要求引用元素。

【讨论】:

请在您的帖子中don't use signatures or taglines。

以上是关于如何向 jQuery click 函数发送多个参数?的主要内容,如果未能解决你的问题,请参考以下文章

Flex:向警报 closeHandler 发送参数

尝试向 GET 函数发送多个参数

使用 jQuery AJAX 发送多个数据参数

如何使用 tf.data.Dataset.from_generator() 向生成器函数发送参数?

jQuery 事件方法

jQuery 事件方法