首先,我得到窗口宽度减去一些东西然后将它分配给变量
其次,我调整窗口大小并希望获得当前窗口宽度减去某些内容的值
但是我得到了错误的价值,它会警告两个值一个是对的而另一个是错的,我不知道为什么以及如何解决它,帮助我,thx
我的HTML代码是
<p class="test">click me get value</p>
js是
(function(){
test();
$(window).resize(function(){
test();
});
}());
function test() {
var t = $(window).width()-74;
alert('one ' +t);
$(document).on('click', '.test',{t: t}, get);
}
function get(event) {
var l = event.data.t
alert('two ' +l)
}
答案 0 :(得分:1)
我不确定您期望获得的值是什么,但请查看有关jquery api的resize
函数文档:
调整大小处理程序中的代码绝不应该依赖于调用处理程序的次数。根据实施情况,调整大小事件可以在调整大小正在进行时连续发送(在Internet Explorer和基于WebKit的浏览器(如Safari和Chrome)中的典型行为),或者仅在调整大小操作结束时发送一次(典型行为在其他一些浏览器,如Opera)。
正如您所看到的,某些浏览器只会在调整大小结束时调用resize,但其他一些浏览器会在调整大小的过程中调用您的函数。这意味着当您没有调整大小时以及在调整大小操作时,您将从通话中获得不同的值。
我对您的代码进行了一些更改,以便变得更干净。请使用开发者控制台(在浏览器上按F12)查看此jsfiddle:
http://jsfiddle.net/xetbhwpv/7/
$(document).ready(function(){
test();
$(window).resize(function(){
test();
});
});
function test() {
var t = $(window).width() - 74;
console.log('one ' + t);
$('.test').off('click');
$('.test').on('click', {t: t}, getInfo);
}
function getInfo(event) {
var l = event.data.t
console.log('two ' +l)
}
正如您现在所看到的,最后two XX
条消息等于上一条resize
条消息。