Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   метод click внутри объекта (https://javascript.ru/forum/misc/54002-metod-click-vnutri-obekta.html)

ksa 27.02.2015 14:25

Цитата:

Сообщение от forcej
в плане загрузить всё это барахло на какойни-будь тестовый сервис?

Выкладывай прямо тут. Его тут можно будет запустить и посмотреть... ;)

forcej 27.02.2015 14:32

сделал пример на jsfiddle.net http://jsfiddle.net/u4no7dwj/

forcej 27.02.2015 14:33

Цитата:

Сообщение от ksa (Сообщение 358815)
Выкладывай прямо тут. Его тут можно будет запустить и посмотреть... ;)

не знал что тут есть такой кейс, первый раз пишу на этот форум)

рони 27.02.2015 14:36

forcej,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       function Dobj(d_class) {

    this.dTitle = $(d_class + " h1");
    this.dBody = $(d_class + " p");
    this.move = function() {
      $(this.dBody).toggle()
    }
    $(this.dTitle).click(this.move.bind(this))
    $(this.dTitle).trigger('click')

}
  var d = new Dobj(".d_class")
});


  </script>
</head>

<body class="d_class">
<h1>click</h1>
<p>hide</p>
</body>

</html>

ksa 27.02.2015 14:39

Цитата:

Сообщение от forcej
не знал что тут есть такой кейс

Вот тебе ответ и решение... ;)

<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
function Dobj(d_class) {
	this.cont = $(d_class)
	this.dTitle = this.cont.find("h1")
	this.dBody = this.cont.find("p");
	var o=this.dBody;
	this.move = function() { 
		alert(this.dBody)
		o.hide();
	};
	$(this.dTitle).click(this.move);
};
$(function(){        
  var d = new Dobj(".d_class")
});
</script>
</head>
<div class="d_class"> 
	<h1>TITLE</h1>
	<P>
		содержимое<br>
	</P>
</div>          
</body>
</html>


P.S.
Перестань пихать жиквери-элементы в жиквери... ;)

forcej 27.02.2015 14:55

ksa, Понял, проблема в области видимости. Спасибо.

forcej 27.02.2015 14:58

рони, $(this.dTitle).click(this.move.bind(this)) вы немогли бы чуть более подробно объяснить как это работает?

ksa 27.02.2015 15:07

Цитата:

Сообщение от forcej
$(this.dTitle).click(this.move.bind(this)) вы немогли бы чуть более подробно объяснить как это работает?

Вот статейка
http://learn.javascript.ru/bind

рони 27.02.2015 15:08

Цитата:

Сообщение от forcej
this.move.bind(this)

bind задаёт контекст в котором работает функция
Привязка контекста (this) к функции в javascript и частичное применение функций

forcej 27.02.2015 15:18

Цитата:

Сообщение от ksa (Сообщение 358833)
Вот статейка
http://learn.javascript.ru/bind

Цитата:

Сообщение от рони (Сообщение 358834)

Большое спасибо.


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