2013-12-07 2 views
0

С трудом получить это для работы.Пытается передать переменную в window.location.hash

С помощью javascript-словаря для создания списка назначений есть два элемента: текст (заголовок) и текст2 (ссылка на хэш-привязку, ex-# slowshutter) Но я не могу заставить ссылку работать.

var cell2 = row.insertCell(1); 
     var element2 = document.createElement("input"); 
     element2.type = "viewButton"; 
     element2.value = todoDictionary["text"]; 
     var link= todoDictionary["text2"]; 
     element2.id = rowID; 
     element2.setAttribute("onclick","window.location.hash = link"); 
     element2.className = "viewButton"; 
     cell2.appendChild(element2); 

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

пример "window.location.hash =" ссылка" nothign происходит "window.location.hash = '+ ссылка" дает ошибку, как он использует "+ ссылку" в URL.

Если я поставить ссылку непосредственно, она отлично работает: пример «window.location.hash = '# slowshutter»

Я знаю, что ссылка правильно хранится в «text2», как я проверил его the element2.value вместо «text», и он придумал «#slowshutter» вместо заголовка ...

Любые идеи?

Noel

+0

"window.location.hash = '+ link +"' " –

+0

' element2.onclick = function() {window.location.hash = link}; ' – adeneo

ответ

0

вы, вероятно, хотите

element2.onclick=function(){ window.location.hash = link; }; 

http://www.w3schools.com/jsref/event_onclick.asp

Поскольку вы используете атрибут API, вы, вероятно, на самом деле не крепление события.

+0

спасибо всем трём, отлично работает! –

+0

one последний элемент, если вы не возражаете. В списке, когда я нажимаю на заголовок элемента, он временно открывает клавиатуру перед тем, как перейти к ссылке. Я предполагаю, что это потому, что это элемент «ввода». Я попробовал «ярлык» и «текстовая область» вместо этого, но название не отображается. любой способ сделать это так, что это всего лишь текст, а не текстовое поле ввода? –

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