2015-06-09 2 views
-1

У меня есть JS объект какИмея выпуск на Назначение функций JavaScript Object

var map = { 
    prov1: { paper.path("M182.89887,371.5666L18,.... }, 
    prov2: { paper.path("M182.89887,371.5666L18,.... }, 
    prov3: { paper.path("M182.89887,371.5666L18,....} 
}; 

теперь мне нужно назначить какую-либо функцию к каждому из тезисов свойств, как

$(map.prov1).hover({ 
    alert("You Assigned A Task to prov1"); 
}); 

в рабочем примере он должен быть как

$(prov1).hover({ 
    alert("You Assigned A Task to prov1"); 
}); 

, но, как вы знаете, что я не могу получить доступ к $(prov1) непосредственно и возвращается как [object object]!

Не могли бы вы дать мне знать, как получить name, а не value объекта для запуска функции?

+0

Код, который вы отправили, не является синтаксически действительным. Я удивлен, что вы получаете какой-либо вывод, учитывая, что код даже не должен выполняться. –

ответ

1

Я думаю, что вы пытаетесь скомпрометировать его, используя jquery здесь, когда его не нужно.

Вы можете просто сделать ...


var paper = new Raphael('test', 200, 200); 

var attrs = { fill: 'blue' } 

var map = { 
    prov1: paper.rect(10,10,20,20).attr(attrs) , 
    prov2: paper.rect(40,40,50,60).attr(attrs) , 
    prov3: paper.rect(50,60,70,80).attr(attrs) 
}; 

map.prov1.click(function() { alert('Hi Im prov1') }); 

jsfiddle

Если вам нужно перебрать объекта, вы могли бы сделать что-то вроде

Object.keys(map).forEach(function(el) { 
    map[el].click(function() { alert('Hi, Im ' + el) }); 
}); 

jsfiddle методом с итерации, если необходимо

0

Вам нужно что-то вроде этого?

var map = { 
    prov1: function() { return paper.path("M182.89887,371.5666L18,.... ")}, 
    prov2: function() { return paper.path("M182.89887,371.5666L18,.... ")}, 
    prov3: function() { return paper.path("M182.89887,371.5666L18,....")} 
}; 

map.prov1(); 
+0

Hi Aman Спасибо за ответ, но как вы можете реализовать функцию типа 'hover' внутри' map.prov1(); '? – Suffii

+0

hover - это просто событие, которое вы связываете с элементом. Я думаю, что ваш paper.path («M182.89887,371.5666L18, ....») должен возвращать селектор элементов. Вы можете использовать $ (map.prov1()). Hover() для привязки события. – Aman

+0

Теперь я получаю 'map.prov()' не является ошибкой функции! – Suffii

Смежные вопросы