我有这段代码
<script type="text/javascript">
var nextUrlArticle = null;
$(document).ready(function() {
$.get("{{ path('next_video_url', { 'id' : article.id })}}", function(result) {
nextUrlArticle = result.url;
});
function getNextVideo(ext) {
if (nextUrlArticle) {
window.location.href = nextUrlArticle;
}
}
});
</script>
它永远不会进入“window.location.href
”,这是完全正常的,因为它是用null
初始化的,并且有一个更新参数的ajax调用但是因为它是asynchrone它没有效果处理代码时。
但我真的需要检查nextUrlArticle是否为空,所以我无法删除该检查。
getNextVideo
将由视频结尾处的Flash视频播放器调用。 (我没有掌握这部分代码)
如何进行检查通过?
感谢。
答案 0 :(得分:0)
在AJAX成功之后,您需要使用更新的值调用执行函数;
$(document).ready(function() {
$.get("{{ path('next_video_url', { 'id' : article.id })}}", function(result) {
nextUrlArticle = result.url;
getNextVideo(); // call function after update
});
function getNextVideo() {
if (nextUrlArticle) {
window.location.href = nextUrlArticle;
}
}
});
答案 1 :(得分:0)
我认为视频在ajax完成之前调用该方法。
一种方法是在加载页面时直接传递nexturl而不是从ajax获取,例如:
nextUrlArticle = {{ nexturl }} //django syntax to pass context vars to template
function getNextVideo() {
if (nextUrlArticle) {
window.location.href = nextUrlArticle;
}
}
答案 2 :(得分:0)
好的,我需要将getNextVideo()
放在$(document).ready(function() {
外面,因为视频播放器无法调用.ready中的功能
很高兴知道。