Ах, уже решил:)
последняя версия:
Это несколько упрощенный код:
function setData(e,key,data){
if(typeof(e)==string){ e = $(e); }
$(e).data(key,data);
}
решение
Проблема заключалась в том, что я хотел оставить себе возможность добавлять элемент через $('element')
, 'element'
или $(this)
, поэтому мне пришлось добавить проверку typeof
перед настройкой данных - так же, как работает jQuery.
если я добавляю элемент как только селектор , это $(e)
, если я добавляю jQuery объект , это e
:
function setData(e,key,data){
if(typeof(e)==string){
$(e).data(key,data);
}else{
e.data(key,data);
}
}
Итак, вы все получите повышенный голос, и я выберу себя победителем через два дня, так что любой, кто наткнется на этот вопрос, будет знать, что делать (ясно, проверено, работает:]) и почему:)
Редактировать : примечание: Вероятно, это не окончательная версия - я прочитал дополнительную документацию, поэтому эта функция setData
поддерживает все типы, которые поддерживает jQuery.add
.