Mirror hoàn toàn 1 thẻ input ?
Có thể Tiêu đề hơi khó hiểu 1 chút ạ. Mình xin nói chi tiết hơn:
Liệu có cách nào để :
ta có 2 thẻ input #no1 và #no2 , khi nhập dữ liệu vào #no1 thì cũng truyền vào #no2 (cái này dễ rồi) , đồng thời các event xảy ra với #no1(click, keyup..) cũng được xảy ra với #no2 ( #no1.onKeyup(func1) #no2.onKeyup(func2) xảy ra cùng lúc)
4 CÂU TRẢ LỜI
mình sẽ thử xem. thank you
$element.clone(true, true);
nếu ko rõ cần event nào thì dùng cái này, replace lại dom là đc biết rõ thì dùng bind(). mà làm gì có chuyện xảy ra cùng lúc :v
mình ko chắc thứ mình muốn có làm dcko, nên đang đi tìm hiểu ạ.
mình nghĩ là
<input id="no#1" onclick="handleClick()" />
<input id="no#2" onclick="handleClick()" />
dù chung 1 function, nhưng bẹn click cái nào thì function cũng chỉ tác động đến cái đó thôi
còn nếu trong function, bạn bảo nó click luôn cái còn lại thì vô tình lại tạo ra loop vô hạn rồi
@hungpv mới khai báo thôi mà, đã làm gì đâu mà tác động với loop vô hạn đc hay thế bạn, bạn trên hỏi làm sao bắt event click ở 2 input chung 1 hàm thôi mà
@cuong_nguyen bạn đó muốn even ở #1 cũng xảy ra ở #2 mà, tức là khi #1 được click thì #2 cũng sẽ nhận được sự kiện tương tự
mà tôi cũng không chắc bạn đó hỏi thì khi event ở #2 có truyền trở lại #1 không nữa
tôi hay dùng jquery, nên nó sẽ trông như vậy
$('#1').on('click', function() {
$('#2').trigger('click');
});
theo ví dụ của bạn, thì nó không truyền event của #1 sang #2, dù chung 1 function, nhưng #1, #2 lại hoạt động hoàn toàn độc lập nhau
ý mình cần nó kích hoạt event của #2 chứ ko phải gọi thêm 1 function cùng lúc. giống như có 2 con chuột cùng click 1 lúc nào 2 nút vậy đó.
Mình xin viết rõ hơn 1 chút nữa: #2 có sẵn sự kiện keyup(dosomething). Khi #1 keyup thì mình muốn #2 cũng xãy ra keyup để dosomething.
dosongthing có thể là bất kỳ gì(coi như mình ko bận tâm cái này), Mình chỉ muốn #2 thật sự xảy ra keyup
<input id="ele1" type="text" onkeyup="onkeyupElement1(event)">
<input id="ele2" type="text" onkeyup="onkeyupElement2(event)">
<script charset="utf-8">
let isTrigger = false
const element1 = document.getElementById("ele1")
const element2 = document.getElementById("ele2")
function onkeyupElement1(event) {
console.log("element1 keyup")
if (!event) return
const value = event.target.value
element2.value = value
if (!isTrigger) {
element2.onkeyup()
isTrigger = true
} else {
isTrigger = false
}
}
function onkeyupElement2(event) {
console.log("element2 keyup")
if (!event) return
const value = event.target.value
element1.value = value
if (!isTrigger) {
element1.onkeyup()
isTrigger = true
} else {
isTrigger = false
}
}
Không biết đúng ý bạn chưa?, Vấn đề xảy ra ở đây là lúc mình trigger thì lại không lấy được event
, bạn có thể search thêm.
element2.value = value
if (!isTrigger) {
element2.onkeyup()
isTrigger = true
}
ở đoạn này sẽ kích hoạt dc onkeyupElement2() nhưng ko có event
@tuananhbfs Mình có nói đến ở trên r, nhưng nó có thực sự cần thiết k?, bạn sẽ làm gì tiếp theo khi element còn lại đc trigger?