gpt4 book ai didi

Javascript:使用 onclick 事件回调属性

转载 作者:行者123 更新时间:2023-12-02 23:09:53 24 4
gpt4 key购买 nike

因为我有 2 个动态生成的 textarea 并且我需要成对调整它们的大小。如何让此回调函数与 onclick 事件一起使用?我认为这是一个基于谷歌搜索的范围界定问题。

function syncSize(master, puppet) {
// Create a temporary callback that uses the puppet and master
let sync = function() {
let height = master.offsetHeight - 6;
puppet.style.height = `${height}px`;
}

// Return a new observer with the callback that listens to the master
return new MutationObserver(sync).observe(master, {
attributes: true,
attributeFilter: ["style"]
});
}

//this will work if uncommented
//syncSize(left, right)
//syncSize(right, left)

//syncSize(left1, right1)
//syncSize(right1, left1)
textarea{
resize: vertical;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<textarea id="left" onclick="syncSize(left, right)">Resize me</textarea>
<textarea id="right" onclick="syncSize(right, left)">I sync</textarea>
<br/>
<textarea id="left1" onclick="javascript:syncSize(left1, right1);">Resize me</textarea>
<textarea id="right1" onclick="javascript:syncSize(right1, left1);">I sync</textarea>
</body>
</html>

如果建议 jquery mousemove,由于限制,我不想使用它 here .

最佳答案

类似这样的事情吗?

function create(master, puppet){
function sync(){

puppet.style.height = master.style.height
puppet.style.width = master.style.width
}
var obs;
try {
obs = new ResizeObserver(sync)
obs.observe(master);
} catch {
obs = new MutationObserver(sync)
obs.observe(master, {
attributes: true,
attributeFilter: ["style"]
});
}
master.onmouseup = () => {
obs.disconnect();
master.onmouseup = () => null
}
}
textarea{
resize: vertical;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<textarea id="master" onmousedown="create(master, puppet)">Resize me</textarea>
<textarea id="puppet" onmousedown="create(puppet, master)">I sync</textarea>
<br/>
<textarea id="left1" onmousedown="create(left1, right1);">Resize me</textarea>
<textarea id="right1" onclick="create(right1, left1);">I sync</textarea>
</body>
</html>

关于Javascript:使用 onclick 事件回调属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57419200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com