动态设置jQuery对象选项/属性

时间:2011-03-31 20:23:32

标签: jquery nivo-slider

为了确保我没有弄乱术语,这是代码示例。我正在使用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;
                                                  });


        });

1 个答案:

答案 0 :(得分:1)

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

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

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

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