Вызов функции из функции с параметрами
Приветствую!
Имеется такая конструкция
<div id="vvv" title="555">123</div>
<script>
var $ = (function() {
return {
add: function(e){
alert(e.title);
}
}
}())
$.add(document.getElementById('vvv'));
</script>
.. все работает. Подскажите как сделать так, чтобы сработал такой вызов $(document.getElementById('vvv')).add(); |
http://api.jquery.com/add/ - почитай сначала как использовать и для чего
|
Так что ли?
<div id="vvv" title="555">123</div>
<script>
var $ = function(e) {
return {
add: function(){
alert(e.title);
}
}
};
$(document.getElementById('vvv')).add();
</script>
|
SV0L0CH,
большое спасибо, это то что нужно |
Подскажите, как можно сделать так, чтобы при вызове, например, $('abc') - возвращался элемент, но при этом $('abc').add() выполнялось как и должно, в моем варианте при вызове $('abc') вернет объект со всеми перечисленными функциями..
var $ = function(e) {
var _e = d.getElementById(e);
if(_e == null)
{
return console.log(e+' not found');
}
else
{
return _e;
}
return {
add: function(f){
//alert(f);
},
func1: function(){
...
},
...
}
|
Берёшь элемент и добавляешь в него все необходимые функции, потом возвращаешь.
Если таких элементов много, то есть смысл воспользоваться паттерном "наследование", однако заниматься этим в ближайшее время не рекомендую. PS начни давать более очевидные названия переменным хотябы в коде который оставляешь на форуме. |
Цитата:
<html>
<head>
</head>
<body>
<div id="vvv" title="555">123</div>
<script>
main={
get: function(){alert(this.self.title)}
}
$=function(id) {
var o=Object.create(main)
o.self=document.getElementById(id)
return o
}
$('vvv').get();
</script>
</body>
</html>
|
registrant,
$('vvv') вернет Object {self: div#vvv, get: function} нужно чтобы при вызове $('vvv') возвращался элемент, а при вызове $('vvv').get() alert Может кто нибудь знает как совершить проверку на вызов вложенной функции? |
cript,
Невозможно это сделать. HTML-элементы только "прикидываются" нативными объектами, они не дают себя расширять полноценно, это часть браузерного API, а не часть языка. Какая тебе разница, что возвращается? Тебе нужен некоторый интерфейс, какая разница, как он реализован? Учись построению абстракций. |
можешь делать вот так
<html>
<head>
</head>
<body>
<div id="vvv" title="555">123</div>
<script>
get=function(){alert(this.title)}
$=function(id) {
return document.getElementById(id)
}
get.call($('vvv'))
</script>
</body>
</html>
Если уж приспичило. |
| Часовой пояс GMT +3, время: 20:10. |