我需要在调用ajax之后隐藏div(this.elmWheel).loadUrl()。
使用此代码我无法隐藏div。 我在这做错了什么? 我正在使用jquery 1.4.2
var Viewer = function(url) {
var scope = this;
this.elm = '#viewer';
this.elmWheel = '#loader-wheel';
this.url = url;
this.init = function() {
this.loadWheelInit();
this.loadUrl();
};
this.loadWheelInit = function() {
$('<div id="' + scope.elmWheel + '">Loading ...</div>').appendTo(this.elm);
};
this.loadWheelHide = function() {
$(this.elmWheel).hide();
console.log('hide');
};
this.loadUrl = function() {
// simulate loading
setTimeout(function() {
// fetch img from api
$.get(this.url, function(data) {
scope.loadWheelHide();
console.log('show image');
// add img to the dom
var img = $('<img id="img">');
img.attr('src', this.url);
img.appendTo(scope.elm);
});
}, 2000);
};
};
<div id="viewer" class="">
</div>
我正在使用此代码创建一个实例,图像正确附加了一个Loadind轮,只是无法隐藏它
var viewer = new Viewer('img/1.jpg');
viewer.init();
答案 0 :(得分:1)
然后你正在创建一个加载轮,它得到一个错误的ID。
this.loadWheelInit = function() {
$('<div id="' + scope.elmWheel + '">Loading ...</div>').appendTo(this.elm);
};
这导致
<div id="#loader-wheel">Loading...</div>
在loadWheelHide
方法中,您尝试按选择器#loader-wheel
访问加载轮,但没有此类ID。
您需要在elmWheel中存储ID
this.elmWheel = 'loader-wheel'
在搜索时添加哈希符号
this.loadWheelHide = function() {
$('#' + this.elmWheel).hide();
console.log('hide');
};