2016-04-29 1 views
0

Я пытаюсь сделать мою диаграмму совместимой с 508. Следовательно, чтобы можно было перемещаться по диаграмме с помощью клавиатуры, я хочу добавить элементы привязки перед каждым столбцом столбца. Я пробовал:Вставить анкерный элемент перед каждой колонкой столбца ti сделать его tabbable

d3.select("svg").insert("a",".nv-bar").attr("href",""); 

но он не работал. Может ли кто-нибудь предложить лучший способ сделать это. Благодаря !

ответ

1

Вот один из способов сделать это:

d3.selectAll('.nv-bar') 
    .each(function() { 
    var el = this; 
    d3.select(el.parentNode) 
     .insert('a', function(){return el;}) 
     .attr('href', ''); 
    }); 

Метод вставки будет добавлять элементы к каждому элементу в текущем выборе, независимо от того, сколько элементов «до» параметров матчей.

Мое решение добавит якорь для каждого бара в документе и будет использовать тот факт, что метод insert может принимать селекторную строку или функцию, которая возвращает элемент для вставки ранее. (Хотя, несколько удручающе, он не принимает узел DOM напрямую)

Edit: Вот jsfiddle примере: https://jsfiddle.net/bgp6atzo/

+0

она не работала :( – user2128

+0

я добавил рабочий jsfiddle этот пример Можете ли вы поделиться. ваш код, который не работает? Или я неправильно понял ваш вопрос, и это не то, что вы хотели этого сделать? –

+0

jsfiddle помог в исправлении моей ошибки. спасибо :) добавление элементов привязки работает. хотя я все еще не могу перемещаться по диаграмме с помощью клавиш табуляции. – user2128

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

  • Нет связанных вопросов^_^