0

为了确保我没有搞砸术语,这里是代码示例。我正在使用jQuery Nivoslider,当我在列表框中更改它们时,我希望能够更改使用的效果。我可以在 div 中显示效果应该是什么,但实际效果并未应用于滑块。

我期待这样的东西: jQuery("#slider").effect = values; 但这似乎不起作用。

以下是部分代码:

// Listbox    
 <select id="slider-effect" name="effect[]" size="10" multiple="multiple" style="height:100px;">
<option value="sliceDownRight">Slice Down to Right</option>
<option value="sliceDownLeft">Slice Down to Left</option>
<option value="boxRain">Rain Boxes</option>
<option value="boxRainReverse">Reverse Box Rain</option>
</select>

 // Javascript that setups NivoSlider (actual div is missing, just an example)
 // shortend options for the example
 jQuery(window).load(function() {
jQuery('#slider').nivoSlider({"effect":"boxRandom"});}); 


 // Javascript that should change the option effect
 // this shows me the effect I set (not included in the code here)

jQuery('#slider-effect').change(function() {
var values = jQuery("#slider-effect").val();
jQuery('#slider-message').html('<p>Effect set to:' + values + '</p>'); 
jQuery("#slider")["effect"] = values;
                                                  });


        });
4

1 回答 1

1

我在该特定插件中没有看到任何规定在初始化后接受更新的选项。大多数 jQueryUI 插件都支持这样的东西:

jQuery('#something').pluginName('options', updatedOptions);

其中“updatedOptions”是新值的映射。但是,在该插件的源代码中,我没有看到任何对类似内容的支持。它在启动时接受各种选项,但没有办法告诉它改变任何东西。

可能可以说服它完全重新初始化,但是使用这样的插件可能会很复杂,因为它们(可能)对 DOM 做了各种奇怪的事情。

于 2011-03-31T22:10:34.977 回答