如何向 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】:快速解决方案
<p class="msg_head" id="837" rel="a" **till_limit="9"**>Header-1 </p>
你可以参考
$(this).attr('till_limit');
这是类似的解决方案,例如定义您自己的 ID 并根据您的要求引用元素。
【讨论】:
请在您的帖子中don't use signatures or taglines。以上是关于如何向 jQuery click 函数发送多个参数?的主要内容,如果未能解决你的问题,请参考以下文章