2012-10-07 18 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/