2013-04-23 94 views
0

使用jQuery,我想在任何地方拖动文本div。然后,如果用户决定要将div文本移回到原始位置,他们将不得不选择说“返回”的选项,那么div文本将移动到原始位置。但是,这根本不起作用,结果要么仍然存在,要么文本消失。没有if语句,任何可拖动的方法都可以工作。我认为这与陈述有关,但我不确定,请帮助。

这里我的jQuery/javascript代码,

var selected = '2 line'; 
    $(document).ready(function(){ 
     $("#options").change(function(){ // function that do option selection 
      selected = $("option:selected", this).val(); 

     }); 

     if(selected == 'return position') 
     { 
       $("#subtitle").draggable({revert: true}) 
     }else 
     { 
      $("#subtitle").draggable({revert: false}) 
     } 
    }); 
+0

您的逻辑有问题,请参阅@Daniel A. White的回答 – 2013-04-23 18:20:25

+1

因此'$(document).ready()'里面的代码只运行一次。您的更改功能已设置,然后您立即检查“选择”(这不等于返回位置)。你再也不会再检查它。如果您希望每次检查$('#options')'时都要检查,则需要将其放入更改函数中。 – 2013-04-23 19:08:55

回答

1

该选项被设置了change事件的一侧。你是不是想把它设置在回调中?

+0

所选变量在全局中声明。因此,无论是内部还是外部都不重要。我没有其他的功能,在那里没有任何改变事件之外的选项。 – StudentIT 2013-04-23 18:46:38

+0

@StudentIT最初设置在哪里? – 2013-04-23 18:52:15

+0

我编辑它通过添加声明变量以上就绪函数 – StudentIT 2013-04-23 19:05:22