2012-10-07 20 views
1

我正在使用下面的代码来更改我的插件中的变量。该变量是在幻灯片延迟:变量值更改(根据alert()),但被插件代码忽略?

$('input[name=changeDelay]').change(function() { 
    settings.delay = $(this).val(); 
}); 

当我提醒修改的值,我让我的变化,但问题是迟迟不幻灯片中的真正改变。如果我手动更改延迟,它工作正常。

正在改变。这样可行。幻灯片似乎并没有采取这个新的价值,有没有一种方法呢?

这里的问题的演示:http://jsfiddle.net/wdqPN/

+2

我们不知道如何settings.delay'用'幻灯片代码交互。你需要提供更多信息。 – Quentin

+0

下面是这个例子,这是我第一次做,所以我相信你会发现不止一个问题。 http://jsfiddle.net/wdqPN/ – Phill

回答

2

滑块插件不知道做什么用的价值做,因为它是一个字符串。你必须将它解析为一个int。

变化:

settings.delay = $(this).val(); 

settings.delay = parseInt(this.value, 10); 
+0

完美,由于某种原因,我认为.val会使它成为一个整数,我猜它是通过一个字符串? – Phill

+0

@BrockAdams感谢您的编辑。澄清我有parseInt(this.value),但它应该是parseInt(this.value,10)。我的某些具体价值会失败。如果你解析int总是设置基数http://www.w3schools.com/jsref/jsref_parseint.asp – Pyro979

-1

更好的方法将是在一个单独的变量保存设置在插件的第一次。

var slideDelay=settings.delay; 
$('input[name=changeDelay]').change(function() { 
    slideDelay = $(this).val(); 
}); 

也许这会捣鼓你说话:

http://jsfiddle.net/wdqPN/2/