假设我有一个表格和上传表单我有2个单选按钮说“是”或“否” 当我们选择一个单选按钮时,我有一组动作要执行。如果我们选择“是”
,请选择//Onload of Form
if(("#yes:checked")){
$("#table").show();
$("#div1").show();
$("#div2").show();
alert("Checkedd on Load");
}
//单击
$("#yes").bind('click',function(){
$("#table").show();
$("#div1").show();
$("#div2").show();
alert("Checked by Click"); });
});
Iam为两组相似的事件编写相同的重复代码行。无论如何要结合“Checked”和“Clicked”事件 如果我这样做,比“Checked”不会被调用直到“Clicked”?还有其他方法可以做到。
$("#yes").bind('click',function(){
if(("#yes:checked")){
$("#table").show();
$("#div1").show();
$("#div2").show();
alert("Checked by Click");
}
});
});
答案 0 :(得分:3)
您可以将多个事件与.bind()
结合起来,例如
$('#yes').bind('click change', function(e) {
});
您可以查找event object
以确定实际触发了哪个事件
switch(e.type) {
case 'click': {
break;
}
case 'change': {
break;
}
}
如果要为这些事件执行完全相同的代码,则可以跳过第一个break
语句。无论如何,在您的特定情况下,我相信您只需要change
事件。在您的事件处理程序中,您只需检查当前是否检查过该元素:
if( this.checked ) {
}
else {
}
要在加载网站时执行eventhandler代码,您可以.trigger()
喜欢
$('#yes').bind('click change', function(e) {
}).trigger('change');
答案 1 :(得分:0)
if(("#yes:checked")){
processCheck();
alert("Checked on Load");
}
$("#yes").bind('click',function(){
processCheck()
alert("Checked by Click"); });
});
function processCheck() {
$("#table").show();
$("#div1").show();
$("#div2").show();
}
这样你就可以定义一次代码并多次调用它:)
您甚至可以将警报写入函数并为其提供所需的字符串:
function processCheck(msgStr) {
$("#table").show();
$("#div1").show();
$("#div2").show();
alert(msgStr);
}
并调用类似processCheck("Checked on Load");
希望有所帮助:)
答案 2 :(得分:0)
实现它的方法之一是创建一个将执行所有常见操作的函数,然后在事件发生时调用此函数。
function show_stuff() {
$("#table").show();
$("#div1").show();
$("#div2").show();
alert("Checked by Click");
}
和
$("#yes").bind('click',function(){
show_stuff();
});