所以,我有以下 jquery 函数:
jQuery('.button').click(function(e) {
if(!isMobile) {
jQuery('.button').featherlight({
});
}
})
这会在 <body>
的底部创建一个灯箱如下所示:
打开灯箱之前:
<body>
<button> Show lightbox</button>
<script src="https://...jquery.min.js"></script>
<script src="https://...custom_js.js"></script>
</body>
灯箱打开后:
<body>
<button> Show lightbox</button>
<script src="https://...jquery.min.js"></script>
<script src="https://...custom_js.js"></script>
<div class="lightbox">Lightbox content</div>
</body>
问题是,该灯箱内的 jQuery 函数都无法正常工作,因为它是在页面加载后创建的。
创建灯箱后如何“重新渲染”js 文件?
谢谢!
这是一个例子:
jQuery('#tags').keyup(function(e){
console.log(e);
if(e.which == 188) {
var tag = ...;
var data = '<button>tag</button>';
tags.push(tag);
jQuery('.tags ul').append(data);
jQuery(this).val('');
}
});
在这里,标签输入将被“附加”或添加到 div class="tags"。然而在灯箱内部,这个函数根本不被执行。
最佳答案
重新渲染 JS 文件并不是 javascript 的工作方式。
我建议您在 afterContent
回调中运行 a 函数。
正如您在featherlight 文档中所看到的,有大量回调可以帮助您完成此任务。
示例:
jQuery('.button').click(function(e) {
if(!isMobile) {
jQuery('.button').featherlight({
afterContent: function () {
// Do your code here
// The lightbox content will be ready
}
});
}
})
关于javascript - 重新渲染 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33662426/