是否有任何快速解决方法可以将一个元素的所有事件触发到另一个元素。
$("#inp-color").change(function(){
alert($("#inp-color").val());
});
$("#inp-color").on("click", function(){
alert($("#inp-color").val());
});
//blur, focus == other functios etc

@media all and (max-width: 767px) {
.for-des-input {
display: none;
}
.for-mob-input {
display: block;
}
}
.for-des-input {
display: block;
}
.for-mob-input {
display: none;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="for-des-input" id="inp-color">
<input type="text" class="for-mob-input" id="inp-color-2">
&#13;
在此,我想触发.inp-color
到.inp-color-2
的所有事件。
这可能吗?
目前我正在做的是
$("#inp-color-2").on("click",function(){
$("#inp-color").trigger("click");
});
$("#inp-color-2").change(function(){
$("#inp-color").trigger("change");
})
答案 0 :(得分:3)
没有安静地提出您的问题,但如果您想要在更改任何输入时触发change
事件,请将您的元素包装在div
中并执行类似
$(".all-inputs input[type=text]").change(function(){
//code goes here if any input changes
});
假设包装器的class
为all-inputs
答案 1 :(得分:3)
您可以将事件合并为一个on()
,并使用处理程序回调中的event.type
传递给trigger()
// set up demo events
$('div').on({
mouseenter: function(){
$(this).addClass('red')
},
mouseleave: function(){
$(this).removeClass('red')
},
click:function(){
$(this).append('<p>Clicked</p>')
}
});
// anything done on first div is also triggered on second
$('#div1').on('mouseenter mouseleave click', function(event){
$('#div2').trigger(event.type)
})
&#13;
div{float:left; width:40%; border:2px solid #ccc}
.red{color:red}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1">Div 1</div>
<div id="div2">Div 2</div>
&#13;