2016-07-27 3 views
1

У меня есть эта функция:Установите несколько переменных .onload к тому же значению

window.onload = function(){ 
    var rows = document.querySelector('.rows'); 
    var columns = document.querySelector('.columns'); 
    rows.onpaste = function(){return false;} 
    columns.onpaste = function(){return false;} 
    rows.ondrop = function(){return false;} 
    columns.ondrop = function(){return false;} 
} 

есть ли способ, что я могу установить все .ondrop и .onpaste к одной и той же функции в одной строке кода?

+0

'rows.onpaste = columns.onpaste = rows.ondrop = columns.ondrop = function() {retur n false;} '? – Hodrobond

+0

Если вы хотите выбрать все элементы с классом '.rows', вам нужно использовать' document.querySeletorAll' not 'document.querySelector' –

+0

У меня есть только один элемент с классами' .rows' и '.columns', но спасибо. – imjustaguy

ответ

2

Да, простой способ (хотя я не думаю, что это самый хороший) будет что-то вроде этого:

window.onload = function(){ 
    var rows = document.querySelector('.rows'); 
    var columns = document.querySelector('.columns'); 
    columns.ondrop = rows.ondrop = columns.onpaste = rows.onpaste = function(){return false;} 
} 
+0

в каком направлении, по вашему мнению, было бы самым приятным? – imjustaguy

+0

Это зависит от того, что вы делаете, конечно. Но мне нравятся функции именования с явным намерением: 'function disableEvent() {...}'. В вашем случае это небольшой скрипт, который может быть доволен читабельностью и длинной строкой. В зависимости от того, как он растет, есть и другие абстракции, которые можно сделать. –

1

Вы можете сделать это в одной строке, как этот

rows.ondrop = columns.ondrop = function(){return false;} 
0

If вы можете использовать функцию стрелки, вы можете сделать это следующим образом:

var rows = document.querySelector('.rows'); 
var columns = document.querySelector('.columns'); 

rows.ondrop = columns.ondrop =() => false 
rows.onpaste = columns.onpaste =() => false 
Смежные вопросы