页面加载后重新应用 javascript
Re apply javascript after pageload
我的砖石代码有问题。
它在页面加载时工作正常,但可以过滤砌体内部的项目,我正在使用 ajax 执行此操作,我正在用元素替换整个 div 以显示已过滤的项目。
发生这种情况后,砌体代码不再应用并且分崩离析。
即使页面加载后内容发生变化,我如何确保砌体保持应用?
在我的页脚中有以下代码:
<script type="text/javascript">
$(document).ready(function() {
$('.gridlist').isotope({
itemSelector: '.masonryitem',
layoutMode: 'masonry',
});
});
</script>
然后在我的 custom.js 我有以下内容:
$( document ).ready(function() {
/* Ajax code voor aanbiedingen */
$("#branche").on('change', function() {
var option = $('#branche > option').filter(':selected');
if(option.val() == 'default'){
$.post("includes/ledenall.php", {
filter: option.val()
}, function(result){
$("#content1").html(result);
});
}else{
$.post("includes/leden.php?option=" + option.val(), {
filter: option.val()
}, function(result){
$("#content1").html(result);
});
}
});
});
哪个 returns 我的 php 文件,但这次没有应用砌体。
我该怎么办?
您可以尝试在更改 DOM 后重新应用您的同位素库:
/* Ajax code voor aanbiedingen */
$("#branche").on('change', function() {
var option = $('#branche > option').filter(':selected');
if(option.val() == 'default'){
$.post("includes/ledenall.php", {
filter: option.val()
}, function(result){
$("#content1").html(result);
$('.gridlist').isotope({
itemSelector: '.masonryitem',
layoutMode: 'masonry',
});
});
}else{
$.post("includes/leden.php?option=" + option.val(), {
filter: option.val()
}, function(result){
$("#content1").html(result);
$('.gridlist').isotope({
itemSelector: '.masonryitem',
layoutMode: 'masonry',
});
});
}
});
我不知道 .gridlist
是否在您更新的 DOM 中完全被替换了。如果没有,您可能需要以某种方式 "remove" 旧同位素实例,但像这样的事情就是您需要做的。
将您的代码添加到函数中
function func() {
$('.gridlist').isotope({
itemSelector: '.masonryitem',
layoutMode: 'masonry',
});
}
然后您可以调用该函数并在您需要的任何时候应用您的同位素
我的砖石代码有问题。
它在页面加载时工作正常,但可以过滤砌体内部的项目,我正在使用 ajax 执行此操作,我正在用元素替换整个 div 以显示已过滤的项目。
发生这种情况后,砌体代码不再应用并且分崩离析。
即使页面加载后内容发生变化,我如何确保砌体保持应用?
在我的页脚中有以下代码:
<script type="text/javascript">
$(document).ready(function() {
$('.gridlist').isotope({
itemSelector: '.masonryitem',
layoutMode: 'masonry',
});
});
</script>
然后在我的 custom.js 我有以下内容:
$( document ).ready(function() {
/* Ajax code voor aanbiedingen */
$("#branche").on('change', function() {
var option = $('#branche > option').filter(':selected');
if(option.val() == 'default'){
$.post("includes/ledenall.php", {
filter: option.val()
}, function(result){
$("#content1").html(result);
});
}else{
$.post("includes/leden.php?option=" + option.val(), {
filter: option.val()
}, function(result){
$("#content1").html(result);
});
}
});
});
哪个 returns 我的 php 文件,但这次没有应用砌体。
我该怎么办?
您可以尝试在更改 DOM 后重新应用您的同位素库:
/* Ajax code voor aanbiedingen */
$("#branche").on('change', function() {
var option = $('#branche > option').filter(':selected');
if(option.val() == 'default'){
$.post("includes/ledenall.php", {
filter: option.val()
}, function(result){
$("#content1").html(result);
$('.gridlist').isotope({
itemSelector: '.masonryitem',
layoutMode: 'masonry',
});
});
}else{
$.post("includes/leden.php?option=" + option.val(), {
filter: option.val()
}, function(result){
$("#content1").html(result);
$('.gridlist').isotope({
itemSelector: '.masonryitem',
layoutMode: 'masonry',
});
});
}
});
我不知道 .gridlist
是否在您更新的 DOM 中完全被替换了。如果没有,您可能需要以某种方式 "remove" 旧同位素实例,但像这样的事情就是您需要做的。
将您的代码添加到函数中
function func() {
$('.gridlist').isotope({
itemSelector: '.masonryitem',
layoutMode: 'masonry',
});
}
然后您可以调用该函数并在您需要的任何时候应用您的同位素