2013-12-10 3 views
1

Внутри кода JavaScript функция Мне это нравится ...Как передать параметр в OnClick функции в JavaScript

function myFunction(){ 
..... 

completeTreeView = completeTreeView + 
    "<li><input type='checkbox' id=" + name + 
    " /><label for='item-0' onclick='myclicktest(\'' + result.name + 
    '\')' >" + Address + "</label>"; 

....... 
} 

function myclicktest(name){ 
      alert(name); 
} 

Как передать и получить result.name

+1

1) Не добавляйте HTML как строку, используйте [createElement] (https://developer.mozilla.org/en/docs/DOM/document.createElement) 2) не используйте встроенные обработчики событий, используйте [ addEventListener] (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener). 3) код-ярлык из SO уже дает вам ответ. – Christoph

+0

благодарит @ Кристоф за ваше предложение. – Hariharan

ответ

0

я установил его ... Я использовал, как показано ниже.

completeTreeView = completeTreeView + "<li><input type='checkbox' id="+ name+" /><label for='item-0' onclick='myclicktest(\"" + Address + "\")' >"+ Address+"</label>"; 

Спасибо всем, кто предоставил мне подсказку, чтобы исправить ситуацию.

+0

Помог ни другого?. Ответьте на свою проблему, чтобы опубликовать другой вопрос: – Christoph

+0

yes @Christoph .. я получил синтаксическую ошибку всего выше сказанного в моем способе подхода .... – Hariharan

+0

Я попытался с заменой «на». – Hariharan

1
completeTreeView = completeTreeView + '<li><input type="checkbox" id="' + parent.node.name + '" /><label for="item-0" onclick="myclicktest(\'' + result.name + '\')">' + nodeNameIpAddress + '</label>'; 

Html атрибуты использования "и то лучше использовать 'для яваскрипта строк

Так что, если вы не можете реверс:

completeTreeView = completeTreeView + "<li><input type='checkbox' id=" + parent.node.name + " /><label for='item-0' onclick=\"myclicktest('" + result.name + "')\" >" + nodeNameIpAddress + "</label>"; 
+0

, но в моем случае мне нужно использовать «вместо» – Hariharan

+0

. Я сделал его обратным ... используйте «вместо» – Hariharan

+0

, учитывая +1 за предоставление подсказки, чтобы исправить мою проблему. – Hariharan

1

Это работает для вас?

function myFunction() { 
    // ..... 

    completeTreeView = completeTreeView + "<li><input type='checkbox' id=" + parent.node.name + " /><label for='item-0' onclick='myclicktest(\'" + result.name + "\')' >" + nodeNameIpAddress + "</label>"; 

    // ....... 
} 

function myclicktest(name) { 
    alert(name); 
} 

Просто обратите внимание на кавычки до и после result.name.

+0

получил SyntaxError: ошибка синтаксиса myclicktest ( – Hariharan

+0

вы можете поделиться след ошибки – vmx

+0

его ошибка синтаксиса, как упоминалось выше, – Hariharan

1

Этот подход представляется правильным.

Пожалуйста, проверьте одиночные или двойные кавычки в javascript.

Вы можете найти проблему с javascript на консоли, если вы используете firebug в firefox.

Вы также можете проверить значение «result.name» в предупреждении, чтобы подтвердить, что вы получаете значение.

Благодаря

+0

дается +1 за предоставление подсказки (цитата), которые помогают мне решить проблему – Hariharan

0

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

function bindEvToThing(str, el) 
{ 
    var name = str 
    el.onmouseup = function() 
    { 
     alert(name) 
    } 
} 
1

Попробуйте

<label><input type='checkbox' onclick='myclicktest(this);'>Checkbox</label> 

function myclicktest(cb) 
{ 
    display("Clicked, new value = " + cb.checked); 
} 
Смежные вопросы