如何将参数传递到事件处理程序中以使其唯一
how to pass arguments into an event handler to make it unique?
请运行这个jsfiddle作为示例。
http://jsfiddle.net/AFzqt/11/
在我的示例中,我有一个链接,上面说相同,如果您填写第一个框,它将复制第二个框中的值。 查看代码,并查看显示。 重复代码只是为了让框出现两次。 嗯......在我实际使用它时,理想情况下,我希望有大约 40 个这样的按钮。
有没有办法在不复制代码 40 次的情况下做到这一点?我是 jQuery 的新手,通常在另一种语言中我只会传入参数,但使用这种语法,我不明白我该怎么做?我该如何处理?
随意涉足我的 JSFIDDLE,并希望链接一个新的修订版,目的是将这两个"与上面相同"按钮的处理减少到一个以条目 ID 作为参数的函数中
如果将
changeButton
类添加到每个按钮,则更容易选择每个按钮来绑定事件处理程序:
<a href="#" class="changeButton">Same as Above</a>
然后我们可以像这样选择每个元素:
$(".changeButton").on("click", function(e) {
//select the previous jQuery Mobile select widgets, we will use just the previous two
var $allPrev = $(this).prevAll('.ui-select').find('select');
//change the value of the immediate previous select widget to the value of the one preceding it
$($allPrev[0]).val($($allPrev[1]).val()).selectmenu("refresh");
e.preventDefault();
});
这是一个演示:http://jsfiddle.net/AFzqt/12/
此代码适用于无数按钮,因为它通过使用 HTML 结构的直观知识来工作(每个链接都使用前两个选择小部件,无论链接位于页面上的哪个位置)。
这样的事情呢?
function bind_click(button_id, target_id, origin_id) {
$(button_id).on("click", function(e) {
$(target_id).val($(origin_id).val());
$(target_id).selectmenu("refresh");
e.preventDefault();
});
}
$(function() {
bind_click("#changeButton2", "#entry_20", "#entry_18");
bind_click("#another", "#entry", "#entry2");
// More binding declarations
});
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- keyup事件处理程序更改焦点不适用于快速键入
- 用程序搜索JQuery数据表中的文本
- Javascript:selenium Web驱动程序isDisplayed()不工作
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- ExtJS 5用程序点击actioncolumn gridview
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 如何从Java/scala调用js美化程序
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angular 1.5应用程序中的导航栏
- 如何将参数传递到事件处理程序中以使其唯一
- 如何在流星应用程序中向 mongodb 添加两列唯一 id
- 在执行不区分大小写的排序以删除web工作程序中的重复项时,首选大写字母唯一
- 我应该使用Javascript或PHP设置一个全局变量来唯一标识web应用程序中的每个页面吗
- 我怎么能选择一个表标题有相同的类名,而不是任何其他唯一的属性在web驱动程序
- 在应用程序中使用唯一的方法名是否很好
- 在Windows 8 WinJS应用程序中启动应用程序是否有唯一的会话ID
- 流星应用程序:如何在不使用帐户的情况下获取唯一的会话/客户端ID