【问题标题】:Saving the data- attribute in to hidden field when tweet button is clicked单击推文按钮时将数据属性保存到隐藏字段
【发布时间】:2013-09-20 08:04:43
【问题描述】:
我的数据显示在转发器控件中,并且我试图在单击每个 twitter 推文按钮时将值保存到 asp 隐藏字段中。我正在为推文按钮连接点击事件。有一个 data- 属性存储一个 id 值,我正在使用点击事件将值存储到隐藏字段中。
$(".twitter-share-button").click(function(){
$("#<%=hidTwitterSharedMonitorId.ClientID%>").val($(this).data('monitor').monitorId);
});
<a href="https://twitter.com/intent/tweet" class="twitter-share-button" data-monitor='{"monitorId":<%#Eval("ID")%>}' data-count="none">Tweet</a>
id 似乎没有分配给隐藏字段。任何人都可以看一下代码,看看我做错了什么。
谢谢,
【问题讨论】:
标签:
jquery
asp.net
.net
vb.net
twitter
【解决方案1】:
首先,尝试重新声明您的匿名方法,以便它可以接收参数:
$('.twitter-share-button').click(function (e) { ...
其次,我相信您的$(this) 将引用共享按钮的实例(您应该在浏览器的开发人员工具中观察)。我建议通过id 属性引用该元素。
..."ClientID%>").val($('#id-of-your-element').data('monitor')...
(如果您打算这样做,我可能会错)。
第三,jquery 事件处理程序应该位于它们所引用的元素之后,因此:
<a href="https://twitter.com/intent/tweet" class="twitter-share-button" data-monitor='{"monitorId":<%#Eval("ID")%>}' data-count="none">Tweet</a>
$(".twitter-share-button").click(function() {
$("#<%=hidTwitterSharedMonitorId.ClientID%>").val($(this).data('monitor').monitorId);
});
- 或者将事件处理程序放置到 document.load 事件中:
$(function () {
$(".twitter-share-button").click(function() {
$("#<%=hidTwitterSharedMonitorId.ClientID%>").val($(this).data('monitor').monitorId);
});
});
<a href="https://twitter.com/intent/tweet" class="twitter-share-button" data-monitor='{"monitorId":<%#Eval("ID")%>}' data-count="none">Tweet</a>