嗨我有另一个问题刚刚解决了由成员的计算器,非常感谢您的及时回复和专业。下面是JS代码,我发现ibox根本不会调用。jQuery不互相呼叫
(function($) {
$.fn.ibox = function() {
// set zoom ratio //
alert("asdfas");
resize = 20;
////////////////////
var img = this;
img.parent().append("<div id='ibox' />");
var ibox = $("#ibox");
var elX = 0;
var elY = 0;
img.each(function() {
var el = $(this);
el.mouseenter(function() {
ibox.html("");
var elH = el.height();
elX = el.position().left - 6; // 6 = CSS#ibox padding+border
elY = el.position().top - 6;
var h = el.height();
var w = el.width();
var wh;
checkwh = (h < w) ? (wh = (w/h * resize)/2) : (wh = (w * resize/h)/2);
$(this).clone().prependTo(ibox);
ibox.css({
top: elY + "px",
left: elX + "px"
});
ibox.stop().fadeTo(200, 1, function() {
$(this).animate({top: "-="+(resize/2), left:"-="+wh},400).children("img").animate({height:"+="+resize},400);
});
});
ibox.mouseleave(function() {
ibox.html("").hide();
});
});
};
});
$(document).ready(function() {
$("#clickMe").click(function() {
alert("Me");
});
var html = "";
var num = 1;
for (var idx=0; idx<100; idx++)
{
if(num == 4) num = 1;
html += "<img src='image/img" + num + ".jpg' class='grayscale' />";
num ++;
}
$("#images").html(html);
$("#images img").ibox();
});
我是否错过了这里的任何调用步骤?请帮忙。 谢谢
wooo。尖锐的一个!非常感谢。它现在效果很好 – user994985
实际上,这里没有关闭。该插件不会引用外部绑定的变量,只会引用(不)传递的参数。该插件封装在_immediately调用(匿名)函数expression_中 - 他只是忘记调用它。 – Alnitak
我想你已经错过了这一点,并可能不明白为什么插件是这样写的。在这种情况下,IIFE的_sole_目的是允许在插件代码中使用'$'作为'jQuery'的简短_alias_。在其他情况下,IIFE可以作为只有插件才能访问的变量的封闭范围。碰巧,插件函数本身是一个闭包,因为它绑定在包含IIFE的''''参数上。 – Alnitak