gpt4 book ai didi

javascript - 不调用 isotope.js 的方法

转载 作者:行者123 更新时间:2023-11-29 22:03:26 24 4
gpt4 key购买 nike

我正在使用 jQuery 1.11 min 和我在 2014 年 1 月下载的 isotope.js。调用某些方法似乎有点卡住了。最新版Safari(v6.1.2)报错信息如下:在加载和初始化页面时:

[Error] cannot call methods on isotope prior to initialization; attempted to call 'appended' (anonymous function) (isotope-docs.min.js, line 1) (anonymous function) (isotope-docs.min.js, line 1) complete (js_asana.js, line 143) (anonymous function) (js_asana.js, line 216)

然后使用 reLayout 我得到了这个:

[Error] no such method 'reLayout' for isotope instance (anonymous function) (isotope-docs.min.js, line 1) (anonymous function) (isotope-docs.min.js, line 1) switchMismatch (js_asana.js, line 179) (anonymous function) (js_asana.js, line 206) each (jquery-1.11.0.min.js, line 2) (anonymous function) (js_asana.js, line 191)

也许我没有正确声明事情。在html页面头部初始化jQuery和同位素:

<head>
<meta charset="utf-8">
<script src="js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js/isotope-docs.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/js_asana.js" charset="utf-8"></script>
</head>

“js_asana.js”页面是一个单独的 javascript 页面,代码如下:

$( document ).ready(function() {
var $container1 = $('#container');
var $container2 = $('#container2');
function complete(t, dd, i, c) {
///this function is passed along from a array built from a JSON GET call
///that part works ok and passes along the variables
var $newEls = $('<div class="element ' + e_type + more + ' isotope-item" data-category="lanthanoid" style="font-size:1em;" id="' + i + '"><p class="number">' + due_date_text + '</p><h3 class="symbol">' + c + '</h3><h2 class="name">' + t + '</h2></div>');
if (c == true) {
//code
$container2.append( $newEls ).isotope( 'appended', $newEls );
}else{
$container1.append( $newEls ).isotope( 'appended', $newEls );
}
return false;
}

这不是完整的代码,但如果有人需要演示,我可以在编辑中提供。

这是使用重新布局的函数。也许我不应该在函数内部调用这些方法?注意所有函数都在document.ready函数内

function switchMismatch(s, n, d, i, c){
///this function is in case a task is completed
/// ...or moved from 'complete' to 'incomplete for whatever reason.
var $which_container
s == 1 ? $which_container = $container1 : $which_container = $container2 ;
var $removable = i;
complete(n, d, i, c);
jQuery('#' + i).remove();
$container1.isotope( 'reLayout');
$container2.isotope( 'reLayout');
return false;
}

最佳答案

在你使用像.isotope('appended',...)这样的方法之前,你需要先用一个通用的.isotope()初始化Isotope .尝试将此添加到准备就绪的文档中:

$( document ).ready(function() {
// init isotope
var $container1 = $('#container').isotope();
var $container2 = $('#container2').isotope();
...
});

关于javascript - 不调用 isotope.js 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22315703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com