2013-12-15 113 views
0

我对jQuery不太了解,但是我发现我想在我的代码中加入a useful snippetjQuery片段不能正常工作

我曾尝试以下:

<form> 
    <fieldset> 
     <legend>Kies je activiteiten</legend> 
     <select id="tenemen" class="chosen-select" multiple style="width:350px;" multiple> 
      {% for activiteit in activiteiten %} 
      <option value="{{activiteit.id}}" selected>{{activiteit.name}}</option> 
      {% endfor %} 
     </select> 
     <select id="telaten" class="chosen-select" multiple style="width:350px;" multiple> 
     </select> 
    </fieldset> 
</form> 
<script> 
$('#tenemen').change(function(){ 
$('#telaten').html(''); //Clear 
$('#tenemen option:not(:selected)') 
.clone() 
.appendTo('#telaten') 
}) 
</script> 

的{} %%标签是神社的,但是这不应该的问题。

我试过它在a JSFiddle,它的工作原理,所以我不明白为什么它不能在我的模板中工作。 jQuery被加载到基本模板中,如下所示:<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>

我对jQuery并不熟悉,所以它可能是非常愚蠢的东西。任何帮助表示赞赏。

+0

好吧,有一些代码,它做它被告知要做的事,但它打算做什么?多数民众赞成在这个问题......你应该写这 – Zim84

+0

只是原来的片段应该做什么;用原始选择中未选中的元素创建一个新选择。 – Ben

回答

0

你需要等到文档准备好...

$(function(){ 
    $('#tenemen').change(function(){ 
    $('#telaten').html(''); //Clear 
    $('#tenemen option:not(:selected)') 
    .clone() 
    .appendTo('#telaten') 
    }) 
}) 

为什么它在工作的jsfiddle的原因是的jsfiddle“的onload”自动闪光代码。当您将代码嵌入到真正的html文件中时,您需要告诉浏览器它必须等待直到文档在执行代码之前被加载。

+0

等待没有什么区别。该文件已准备就绪,但仍然无效。 – Ben

+0

上面的代码应该和jsfiddle中的完全一样。如果它不在其他地方有一些错误...我的猜测是你的模板引擎。尝试在没有模板引擎的情况下在本地运行代码...还要检查您的js控制台是否有错误。 –

+0

在控制台中,我得到[ReferenceError:$未定义@ http://127.0.0.1:5000/activiteiten:83'和'[00:18:44.088] ReferenceError:Modernizr不是定义@ http://127.0.0.1:5000/activiteiten:668'只有当我用模板运行它时,它不起作用(即它在没有Jinja的情况下在本地运行时才起作用) – Ben