Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Селекты jQuery на атрибуты (https://javascript.ru/forum/jquery/66376-selekty-jquery-na-atributy.html)

Infinity178 11.12.2016 20:19

Селекты jQuery на атрибуты
 
Доброго вечера.

не могу подобрать подходящую комбинацию селектов..

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

Пример:
<span data-click="open">кнопка</span>

jQuery

....
$('[data-click]').on({
	click : function(){console.log('click');},
	focusin : function(){console.log('focus in');},
});
....


В данном случаи как можно извратиться что бы реализовать
[data-^], т.е. срабатываем на любой аттрибут начинающейся с data-

и есть ли возможность окончание данного DATA подключить нужную функцию?
т.е. если DATA-click то используем click : function...

PS ну последнее пальцем в небо)))

рони 11.12.2016 21:21

Infinity178,
$(function() {
    var ev = {
        click: function() {
            console.log("click")
        },
        focusin: function() {
            console.log("focusin")
        }
    };
    $("span").each(function(indx, el) {
        el = $(el);
        var data = el.data();
        Object.keys(data).forEach(function(key) {
            ev[key] && el.on(key, ev[key])
        })
    })
});

или так
$(function() {
    var ev = {
        click: function() {
            console.log("click")
        },
        focusin: function() {
            console.log("focusin")
        }
    };
    Object.keys(ev).forEach(function(key) {
        $("[data-" + key + "]").on(key, ev[key])
    })
});


Часовой пояс GMT +3, время: 20:43.