Javascript 如何将参数传递到事件处理程序以使其唯一?
请运行此JSFIDLE作为示例 在我的示例中,我有一个与上面相同的链接,如果您填写第一个框,它将复制第二个框中的值。看看代码,看看显示器。有一个重复的代码只是为了让框出现两次。好。。。在我的实际使用中,我理想地希望有大约40个这样的按钮 有没有一种方法可以在不复制代码40次的情况下执行此操作? 我不熟悉jquery,通常在另一种语言中我只会传入参数,但使用这种语法我不知道如何才能做到这一点?我该怎么办Javascript 如何将参数传递到事件处理程序以使其唯一?,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,请运行此JSFIDLE作为示例 在我的示例中,我有一个与上面相同的链接,如果您填写第一个框,它将复制第二个框中的值。看看代码,看看显示器。有一个重复的代码只是为了让框出现两次。好。。。在我的实际使用中,我理想地希望有大约40个这样的按钮 有没有一种方法可以在不复制代码40次的情况下执行此操作? 我不熟悉jquery,通常在另一种语言中我只会传入参数,但使用这种语法我不知道如何才能做到这一点?我该怎么办 请随意浏览我的JSFIDLE,并希望链接一个新的修订版,目的是将对这两个“同上”按钮的处理减
请随意浏览我的JSFIDLE,并希望链接一个新的修订版,目的是将对这两个“同上”按钮的处理减少到一个函数中,以条目id作为参数
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
});
如果将
changeButton
类添加到每个按钮,则更容易选择每个按钮来绑定事件处理程序:
<a href="#" class="changeButton">Same as Above</a>
下面是一个演示:
这段代码适用于无数个按钮,因为它通过使用HTML结构的直观知识来工作(每个链接使用前两个select小部件,无论链接位于页面上的何处)
$(".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();
});