2012-04-26 5 views
2

У меня есть DIV:Вызов функции в JavaScript, как в JQuery

<div id="test" style="width:auto; height:auto;"> 
</div> 

и функция:

$(function() { 
      $("#test").attr("contentEditable", "true"); 
      $("#test") 
      .attr("tabindex", "0") 
      .keydown(function(){ alert(1); return false; }) 
      .mousemove(function(){ alert(2); return false; }); 
    }); 

Как я могу реализовать этот код в JavaScript без включения библиотеки JQuery?

+0

В каких браузерах вы нацеливаетесь? – Cameron

+0

firefox, т. Е. Хром – Kichu

+1

Какие версии ie? Обработка событий в более старых версиях IE потребует дополнительного кода. – kinakuta

ответ

2

Вы можете сделать это, как это в JavaScript без использования JQuery, доступна демонстрационная версия здесь JsFiddle Вы можете поместить его в OnLoad метод тела, то он будет вызывать OnLoad тела или просто положить его в разделе скрипта ниже всех элементов управления, не поставив его в функции, то он вызывается, когда документ готов, как метод jquery $(). ready();

var test = document.getElementById('test'); 
test.setAttribute("contentEditable", "true"); 
test.setAttribute("tabindex", "0"); 
test.onkeydown = function(event) { alert("KeyDown");}  
test.onmousemove = function(event) { alert("MouseMove");} 
+1

Вы можете найти элемент и сохранить его в переменной, чтобы избежать повторных вызовов '.getElementById()', если только вам не нравится вводить текст. – Pointy

+2

Я только что сделал это, а также обновленное описание – Adil

+0

@pointy не печатать, просто скопировать пасту;), –

1
function runme() { 
    var elm = document.getElementById("test"); 
    elm.contentEditable = "true"; 
    elm.tabIndex = 0; 
    elm.onkeydown = function() { alert(1); return false; }; 
    elm.onmousemove = function() { alert(2); return false; }; 
} 

if(window.addEventListener) 
    window.addEventListener("load", runme, false); 
else 
    window.attachEvent("onload", runme); 
1

Адиль имеет право идею, но улучшить его немного, вы могли бы хранить элемент в переменной, так что вам не нужно, чтобы сделать звонок, чтобы получить элемент каждый раз. Поэтому я хотел бы изменить его, чтобы выглядеть следующим образом:

var t = document.getElementById('test'); 

t.setAttribute("contentEditable", "true"); 
t.setAttribute("tabindex", "0"); 
t.onkeydown = function(event) { alert("KeyDown");}  
t.onmousemove = function(event) { alert("MouseMove");} 

Upvoted Адиль за избиение меня к нему, и за предоставление jsfiddle ссылки :)

обновление: фига, так как вы только что обновили свой пост

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