gpt4 book ai didi

javascript - 将附加参数传递到 JavaScript 事件中

转载 作者:行者123 更新时间:2023-12-02 20:23:19 27 4
gpt4 key购买 nike

我正在尝试使用 JavaScript 函数作为 jQuery 的事件处理程序,但它需要一条额外的信息。我尝试将其添加到带有数据的对象中,并使用 this,但执行时 this 为 null。我相信这与 JavaScript 中的函数复制有关。我如何传递我的额外信息。

<script type="text/javascript">
var WIDTH_ATTR = 'initWidth';

function resizeHandler(event, ui){
var change = ui.size.width - this.master.attr(WIDTH_ATTR);
this.slave.width(slave.attr(WIDTH_ATTR) - change);
};

function splitResize(master, slave, masterHandles){
var s = new SharedResize(master, slave);
master.resizable({ handles: masterHandles, resize: s.resizeHandler });
}

function SharedResize(master, slave){
this.master = master;
this.slave = slave;
this.resizeHandler = resizeHandler;
master.attr(WIDTH_ATTR, master.width());
slave.attr(WIDTH_ATTR, slave.width());
}

// initialise plugins
$(function(){
try {
$('ul.sf-menu').superfish();
splitResize($('#Content'), $('#InfoPanel'));
}catch(ex){
alert(ex.message);
}
});
</script>

此代码给出的错误为

Line:13'this.master' is null or not an object.

尝试调整大小时。

我可以让这个方案起作用吗,或者是否有其他方法将事件处理程序与我的数据相关联。

最佳答案

尝试这个改变:

function splitResize(master, slave, masterHandles){
var s = new SharedResize(master, slave);
master.resizable({ handles: masterHandles,
resize: function(event, ui) { s.resizeHandler(event, ui); } });
}

这样,“调整大小”处理程序将是一个匿名函数,该函数反过来会使用适当的上下文(“SharedResize”实例)调用您的处理程序。

关于javascript - 将附加参数传递到 JavaScript 事件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5223045/

27 4 0
文章推荐: asp.net-mvc - Azure 网站中的 Elmah
文章推荐: javascript - 更改 window.location 时丢失窗口引用?
文章推荐: javascript - 使用 JS/DOM 创建带有