jQuery maphilight меняет цвет на лету

Я использую этот плагин http://davidlynch.org/js/maphilight/docs/

Но не могу понять, как менять цвет на лету. Он использует плагин метаданных и делает это с помощью директивы класса, но изменения не применяются на лету.

e.g.

class="{stroke:false,fillColor:'000000',fillOpacity:1,alwaysOn:true}"

и теперь я хочу изменить цвет:

class="{stroke:false,fillColor:'00ffff',fillOpacity:1,alwaysOn:true}"

person Alex Ivasyuv    schedule 27.08.2010    source источник
comment
У вас есть образец установки для тестирования? Потому что при чтении документации сайта кажется, что это должно быть довольно просто, потому что вы можете передавать параметры функции выделения. davidlynch.org/js/maphilight/docs   -  person spinon    schedule 27.08.2010
comment
Да, но maphilight () следует применять к корневому элементу карты, а не к области. А изменение класса с соответствующими метаданными и вызов maphilight () не имеет никакого эффекта.   -  person Alex Ivasyuv    schedule 27.08.2010
comment
Вы можете попробовать изменить цвет на лету на этой странице через davidlynch.org/js/ консоли JS. maphilight / docs / demo_simple.html   -  person Alex Ivasyuv    schedule 27.08.2010


Ответы (2)


вам нужно, чтобы этот плагин включал

<script type="text/javascript">/*
 * Metadata - jQuery plugin for parsing metadata from elements
 *
 * Copyright (c) 2006 John Resig, Yehuda Katz, J�örn Zaefferer, Paul McLanahan
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.metadata.js 3620 2007-10-10 20:55:38Z pmclanahan $
 *
 */
(function($){$.extend({metadata:{defaults:{type:'class',name:'metadata',cre:/({.*})/,single:'metadata'},setType:function(type,name){this.defaults.type=type;this.defaults.name=name;},get:function(elem,opts){var settings=$.extend({},this.defaults,opts);if(!settings.single.length)settings.single='metadata';var data=$.data(elem,settings.single);if(data)return data;data="{}";if(settings.type=="class"){var m=settings.cre.exec(elem.className);if(m)data=m[1];}else if(settings.type=="elem"){if(!elem.getElementsByTagName)return;var e=elem.getElementsByTagName(settings.name);if(e.length)data=$.trim(e[0].innerHTML);}else if(elem.getAttribute!=undefined){var attr=elem.getAttribute(settings.name);if(attr)data=attr;}if(data.indexOf('{')<0)data="{"+data+"}";data=eval("("+data+")");$.data(elem,settings.single,data);return data;}}});$.fn.metadata=function(opts){return $.metadata.get(this[0],opts);};})(jQuery);</script>
person siokstoksanoks    schedule 19.07.2011

Хорошо, я обнаружил, что использование холста решает мою проблему.

person Alex Ivasyuv    schedule 24.10.2010