获取点击按钮的值/attr作为event.data,带有.on(“点击”…)
Get value/attr of clicked button as event.data with .on("click"...)
我需要获取单击按钮的值或任何其他属性,才能将其用作函数中的event.data
。
这是设置:
- 有26个按钮,其值/文本从"A"到"Z",作为按字母表列出的列表的控件
- 每个按钮都有相同的class="byalpha"
- 每个按钮启动相同的ajax搜索函数,该函数从sql中获取json数据以生成列表
- 通过单击class="byname"的按钮,应将唯一值(例如"B")作为event.data.letter传递给函数
我可以使用无线电输入和其他东西来控制这个功能:
$( "input[name=selectdept]" ).on ("click", { searchdept: function (){ return $( "input[name=selectdept]:checked" ).val()}}, startsearch );
因此,如您所见,单击输入会激发function(startsearch)
,并将输入的值作为event.data.searchdept
在函数中使用。一切正常。
但试着用按钮是让我发疯。我尝试了我只能想象的一切。由于我必须通过类而不是唯一的名称或id来获得按钮,所以我不能像使用无线电输入那样使用。我尝试使用$(this)
获取任何属性。但只是提出了"未定义"。我的一些方法:
$(".byname").on ("click", {letter: $(this).attr('value')}, searchdept );
或
$(".byname").on ("click", {letter: function(){ return $(this).attr("value")}}, searchdept );
或任何类型的
.val() // .attr() // .text() // .html() .... you name it
在这里的某个地方,我发现"event.target.value"可以提供正确的值(例如按钮B的"B"),但在我的功能上下文中不是一个好的解决方案,因为总共有3种不同的方式(26个按钮/4个单选输入/文本输入)来启动该功能,而提供的值会使其变得复杂。
你好,我真的不明白你在这里想做什么,但我猜你想得到你为每个按钮设置的数据变量的值。
我重新创建了你的场景EDIT-更新了Javascript代码,现在它似乎可以按照您的要求工作
HTML
$('.byalpha').on('click', {
'letter': function(element) {
return $(element).data('letter');
}
},
function(e) {
$('#picked_letter').html(e.data.letter(this));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input class="byalpha" type='button' value='A' data-letter="a" />
<input class="byalpha" type='button' value='B' data-letter="b" />
<input class="byalpha" type='button' value='C' data-letter="c" />
<input class="byalpha" type='button' value='D' data-letter="d" />
<input class="byalpha" type='button' value='E' data-letter="e" />
<hr/>
<div>
<span>Letter : </span> <span id="picked_letter"></span>
</div>
<hr/>
Javascript
$('.byalpha').on('click',
{'letter': function (element) {
return $(element).data('letter');
}
},
function (e) {
$('#picked_letter').html(e.data.letter(this));
}
);
这是工作样品的链接
http://jsfiddle.net/70fje1mh/2/
相关文章:
- 获取点击按钮的值/attr作为event.data,带有.on(“点击”…)
- 带有jquery.min.map的Ruby on Rails:未能加载资源状态406
- 带有 ajax 的 Fancybox on click 事件会触发多个 ajax 请求
- UIWebView 不调用 shouldStartLoadWithRequest on 带有动态链接的按钮
- 在 Ruby on Rails 中使用带有 If 语句的 Select Option 表单
- 如何使用带有Ruby on Rails的JS提交表单
- 带有 on() 的 Ajax 帖子
- 使用带有on()事件的jquery掩码插件
- 主干 .on 事件侦听器,带有带有咖啡脚本的回调函数
- 带有ajaxed内容的jQuery on()
- 使用带有动态添加元素的.on()时出现的问题
- 如何使用纯javascript将带有参数的事件调度到jQuery.on()
- 纯javascript等价于带有选择器的$(document).on(event)
- 如何在ruby on rails中启用/禁用带有复选框的输入字段
- 如何模拟一个< >on("click"…)后面带有类和数据类型的标记.在jQuery
- 带有匹配嵌套元素的选择器的jQuery.on()委托
- 带有复选框的双向绑定总是返回“on”
- jQuery DataTables'带有多个事件的s on()事件侦听器
- ruby on rails-Mapbox 1.6-带有标记层(GeoJSON)的Javascript错误
- Ruby on rails发送带有send_file的图像,并在javascript中请求文件