javascript - 使用javascript变量更新 "Onlick"中调用的函数的变量

标签 javascript jquery html onclick

我的正文中有以下 html:

<a  onclick="popupCenter(address,'Title','500','500');" href="javascript:void(0);" id="myID">

调用以下函数:

    <script>
function popupCenter(url, title, w, h) {
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
return window.open(url, title, 'toolbar=no, location=no,directories=no, status=no, menubar=no, scrollbars=no, resizable=no,     copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
} 
</script>

我需要用 JavaScript 变量替换 onclick 选项下被调用函数的“address”变量(例如下面的变量 x):

<script type="text/javascript">
var x = "NewURL"
</script>

现在的问题是: 在很多情况下,popupCenter 都会被调用。而且,变量 x 是通过下拉列表的值决定的。 popupCenter 调用的每个实例都会使用唯一的地址进行更新(该地址是使用从下拉列表中获得的值推导出来的)。所以,我真的无法将 url 设为静态。

有 3 个变量,例如 x,每个变量都是使用从下拉列表中获取的值创建的 URL。现在,每个创建的 URL 都应该传递到在三个不同实例中调用的 popupcenter 的地址/url。

在对 dropdown 进行任何更改之前,每次 popupCenter 函数调用中都会保留一个固定的地址值(此处称为地址)。这是需要用 javascript 动态创建的变量来更改的地址变量。

如果有人能帮忙就太好了。我不擅长网络开发。

最佳答案

不要使用 url,而是使用 x,因为它是全局变量,您可以在函数中引用它。

window.open(x, title, .... )

其他选项是仅更改 onclick 以使用变量 x

onclick="popupCenter(x,'Title','500','500');"

没有 window.open 的快速演示,只是一个控制台行来显示更新后引用变量将在函数内部更新。

var base = "TEST";
var x = "1";

function test1 (y) {
    console.log(base + " : " + y);
}

function test2 () {
    console.log(base + " : " + x);
}


function updateX () {
    x = new Date().toLocaleString();  //just generate something to test  
}
<a href="#" onclick="test1(x)">Test test1(x)</a>
<a href="#" onclick="test2()">Test test2()</a>

<button onclick="updateX()">Update X</button>

关于javascript - 使用javascript变量更新 "Onlick"中调用的函数的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38638037/

相关文章:

javascript - mocha测试中以下js箭头函数中 `this`指向什么?

javascript - jQuery 延迟链接 css 属性

html - CSS将文本移动到水平菜单上的新行

javascript - 如何使用 jQuery 在鼠标悬停时制作简单的淡入淡出效果或慢速动画

html - 为单元格创建具有交替背景颜色的曲线表

php - 通过 PHP 解码数字 html 实体

javascript - 如何删除嵌套 foreach 中的循环数组值?

javascript - CSS动画卡住

javascript - 停止事件从子级到父级以及中间的传播

javascript - 如何在Windows8移动应用程序中禁用触摸覆盖