Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   событие на главнй див (https://javascript.ru/forum/dom-window/56055-sobytie-na-glavnjj-div.html)

Trues 27.05.2015 17:04

событие на главнй див
 
Ребят всем привет есть два блока

<style>
.one{
width:500px;
height:500px;
background:#cdcdcd;
}
.one{
width:300px;
height:300px
margin: auto;
background:#000000;
}
</style>
<div class='one'>
    <div class='two'>
    </div>
</div>


мне нужно повесить событие клика на блок с классом one но при этом чтоб если нажимаешь на блок two событие не происходило.

Если чесно незнаю можно ли так вобще сделать. если можно то как подскажите пожалуйста

$('.one').click(function(){
   alert('Hi all');
});

Decode 27.05.2015 17:19

$('.one').click(function( event ) {
      if(event.target.className != 'one') return;

      alert('Hi all');
});

Trues 27.05.2015 17:25

большое спасибо))) работает как часы:)

kostyanet 27.05.2015 17:27

Цитата:

Сообщение от Trues
но при этом чтоб если нажимаешь на блок two

Это колхозная логика, индустриальная вот такая: когда нажимаем на уан - должно сработать, а на все остальное - забить.

То есть код Decode по-фабричному должен быть таким

if(event.target.className == 'one') {
/* делаем полезные дела */
};

рони 27.05.2015 17:52

Trues,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 .one{
width:500px;
height:500px;
background:#cdcdcd;
}
.two{
width:300px;
height:300px;
margin:  auto;
background:#000000;
}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
      $('.one').click(function( event ) {
      if(event.target == this) alert('Hi all');
});
});


  </script>
</head>

<body>
<div class='one'>
    <div class='two'>
    </div>
</div>
</body>

</html>

Decode 27.05.2015 18:03

У меня почему-то не работало...
if( event.target != $(this) ) return;

рони 27.05.2015 18:21

Цитата:

Сообщение от Decode
if( event.target != $(this) ) return;

вы написали если элемент не равен обьекту jquery
если вас неустраивает
if(event.target != this)

можно ... так
if( event.target != $(this)[0] )
типа маленький нехороший код

Decode 27.05.2015 18:26

рони, понятно. Я просто не знаю jQuery. И думал, что this и $('this') - это одно и тоже.


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