2011-12-30 84 views
1

如果我用變量替換id,下面的代碼將不起作用。我嘗試了不同的組合,但沒有工作。我正在使用表單元素。請讓我知道是否有人知道如何獲得這項工作。謝謝。將相同的函數綁定到jquery中的不同元素

這工作:

$('#Button1, #Button2').click(function() { 
// 
}); 

這裏是我的示例代碼,不工作:

<!doctype html> 
<html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<title>Untitled Document</title> 
<style> 
</style> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>     <script>  
    $(document).ready(function(){ 
    var Btn1 = $("#buy"); 
     var Btn2 = $("#preview");   
    $(Btn1, Btn2).click(function(){ console.log("hey");})   
}); 

</script> 
</head> 
<body> 
    <form> 
     <input type="button" value="Preview" id="preview" /> 
     <input type="button" value="Buy" id="buy" /> 
    </form> 

</body> 
</html> 
+1

附註:如果你不想迷失在迷宮般的jQuery鏈式方法中,你應該正確地縮進你的代碼。 – 2011-12-30 11:27:06

回答

2

可以Concat的jQuery的元素和兩個分配點擊功能。

Btn1.add(Btn2).click(function(){ 
    console.log("hey"); 
}); 

更好的解決辦法是給一些類按鈕然後將它們分配點擊:

$('.myButton').click(function() { 
    console.log("hey"); 
}); 
+0

非常感謝。這樣可行。 – user441964 2011-12-30 17:22:36

1

您還可以從事件綁定分離功能。這可以提供更多高級用途的強大技術。下面

var my_func = function(){ console.log("hey");} 

$("#buy").click(my_func); 
$("#preview").click(my_func); 
1

更簡單的解決方案:)

$("input[type='button']").click(function(){ 
    console.log("hey"); 
}); 

或者就是常見樣式類所有按鈕

<input type="button" class=".buttonClass" value="Preview" id="preview" /> 
<input type="button" class=".buttonClass" value="Buy" id="buy" /> 

是需要的JavaScript。

$(".buttonClass").click(function(){ 
      console.log("hey"); 
    }); 
1

你正在把你的jQuery元素放在單獨的變量中,並在函數調用中使用它們。您的解決方案中逗號將不會按預期行事。 您可以使用像這樣的選擇器$('#buy,#preview')。你的JS代碼看起來像這樣:

$(document).ready(function(){ 
     $('#buy, #preview').click(function(){ console.log("hey");})   
    }); 
相關問題