我已經根據鍋爐板結構的一個插件這裏建議:jQuery插件的setTimeout IE(Internet Explorer 8中)錯誤
http://markdalgleish.com/2011/05/creating-highly-configurable-jquery-plugins/
插件的響應,因爲我想在Chrome,但我正在逐漸互聯網Explorer和Firefox錯誤
您可以在這裏使用http://websonalized.com/myplugin.php
誤差的MSIE開發者控制檯(調試)查看插件:
個無效參數myplugin.js,行84字5
錯誤在Firefox:
錯誤:沒用setTimeout調用
的setTimeout(animateSlide(sliderImage),3000);(失蹤圍繞論點報價?)
THIS IS碼的相關位
...
this.$slides.each(function(i){
slide_config = $.extend({
duration: 3000,
squares: 225, //it will display the closest 'perfect square' number of tiles
transition: 'linear'
}, $(this).data());
var sliderImage = $(this).find('.slidebg');
...
setTimeout(animateSlide(sliderImage), 3000);
function animateSlide(s){
console.log('ANIMATED IMAGE SLIDER ' + i);
console.log(s);
$(s).show('explode', { pieces: slide_config.squares }, 5000);
};
...
如果我重寫的setTimeout位的錯誤都不見了:
...
this.$slides.each(function(i){
slide_config = $.extend({
duration: 3000,
squares: 225, //it will display the closest 'perfect square' number of tiles
transition: 'linear'
}, $(this).data());
var sliderImage = $(this).find('.slidebg');
...
setTimeout(function(){$(sliderImage).show('explode', { pieces: slide_config.squares }, 5000);}, 3000);
...
但slide_config.squares不對應的值這個實例,而且值是由最後一張幻燈片數據設置的值
this.$slides.each(function(i){
slide_config = $.extend({
duration: 3000,
squares: 225, //it will display the closest 'perfect square' number of tiles
transition: 'linear'
}, $(this).data());
我想這與上下文有關。任何人都可以幫助我解決並理解如何使用setTimeoff?
修復裝置我能夠setTimeout的W/O在瀏覽器中FF,IE和鉻,而每個實例的slide_config.squares值等於任一個由每個幻燈片對象設置或默認值(即slide_default)錯誤
注意:在第一個代碼示例中,slide_config.squares的值是我的預期值,即根據幻燈片對象或slide_config默認設置。再次,該代碼會出現很好地工作在谷歌Chrome中的代碼第一位
@SLarks我雖然我這樣做。 $ slides.each(function(i){this每個對應於每張幻燈片,然後設置slide_config = $ .extend({...我是否錯過了一些東西?您可以查看完整的來源http://websonalized.com/myplugin.js – IberoMedia
@SLarks ... je je je是的,我有些遺憾。在設置slide_config之前,'var'這個詞謝謝 – IberoMedia