JQuery - No detecta cuando doy clic

 
Vista:
Imágen de perfil de Daniel

No detecta cuando doy clic

Publicado por Daniel (4 intervenciones) el 17/09/2017 03:43:34
Buenas chic@s, el problema que tengo es que cuando doy clic a un elemento no agarra la funcion de jquery
1
2
3
4
5
6
7
8
9
10
11
12
13
function es_notify(e) {
    e.preventDefault();
    console.log($(this).parent().html());
  };
  $('.closenot').click(es_notify);
 
  function notify(texto, tipo) {
    $('#notif').show();
    var not = $('#notif').html();
    $('#notif').html(not+'<div class="notfy '+tipo+'">'+texto+'<a href="#" class="closenot"><i class="fa fa-times" aria-hidden="true"></i></a></div>');
    not = $('#notif').html();
    $('.notfy').fadeIn(300).delay(3000);
  }
La funcion que no agarra es es_notify
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

No detecta cuando doy clic

Publicado por xve (673 intervenciones) el 17/09/2017 13:05:00
Hola Daniel, no nos muestras el código html, pero he hecho un simple ejemplo, y funciona perfectamente...

1
2
3
4
5
6
7
8
9
10
11
12
13
<script src="http://code.jquery.com/jquery-latest.js"></script>
 
<div>
	<div class="closenot">textooooo</div>
</div>
 
<script>
function es_notify(e) {
    e.preventDefault();
    console.log($(this).parent().html());
};
$('.closenot').click(es_notify);
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Daniel

No detecta cuando doy clic

Publicado por Daniel (4 intervenciones) el 17/09/2017 17:25:51
Buenas, en mi código html lo que tengo es

1
<div id="notif"></div>

Y si la funcion es_notify se la pongo a otro elemento sí funciona pero con ese div a mi no, no sé si tenga que ver que la funcion notify crea el div con clase closenot
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No detecta cuando doy clic

Publicado por Daniel (4 intervenciones) el 17/09/2017 19:44:56
Puede ser que tengas algún otro contenedor div con esa misma etiqueta id?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Daniel

No detecta cuando doy clic

Publicado por Daniel (4 intervenciones) el 17/09/2017 20:17:32
No tengo ningún otro div con esa clase
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

No detecta cuando doy clic

Publicado por xve (673 intervenciones) el 17/09/2017 21:20:17
puedes mostrar tu código completo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Daniel

No detecta cuando doy clic

Publicado por Daniel (4 intervenciones) el 17/09/2017 22:39:54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<?php session_start();
 
  $componente_url = parse_url($_SERVER['REQUEST_URI']);
  $ruta = $componente_url['path'];
  $partes_ruta = explode('/', $ruta);
 
  $titulo = $_SERVER['SCRIPT_NAME'];
  $explode = explode('/', $titulo);
  $titulo = preg_replace('/\.php$/', '' ,array_pop($explode));
 
  $login = "";
  if (isset($_SESSION['login'])) {
    $login = $_SESSION['login'];
  }
 
  if ($titulo == 'cuentas') {
    $titulo = str_replace('cuentas' , $partes_ruta[3] , $titulo);
  }
  if ($titulo == 'clase' OR $titulo == 'curso' OR $titulo == 'crear') {
    $titulo = str_replace('clase' , $partes_ruta[3] , $titulo);
    $titulo = str_replace('curso' , $partes_ruta[3] , $titulo);
    $titulo = str_replace('crear' , 'crear '.$partes_ruta[3] , $titulo);
  }
 
  $titulo = str_replace('_' , ' ' , $titulo);
  $titulo = str_replace('index' , 'Inicio' , $titulo);
  $titulo = str_replace('user', $login, $titulo);
 
 
  $titulo = strtoupper($titulo);
  $titulo = $titulo.' | Code it is fun';
  $ht = 'http://localhost/Cursos'; ?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title><?php echo $titulo ?></title>
  <link rel="stylesheet" href="<?php echo $ht ?>/css/font-awesome/css/font-awesome.min.css">
  <link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet">
  <link rel="stylesheet" href="<?php echo $ht ?>/css/estilos.css">
  <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  <script src="<?php echo $ht ?>/js/main.js"></script>
</head>
<body>
 
  <div id="particles-js">
 
  </div>
 
  <header>
    <div class="menu">
      <div class="contenedor">
        <div class="logo">Code it's fun</div>
        <nav>
          <ul>
            <li><a href="<?php echo $ht ?>">Inicio</a></li>
            <li><a href="<?php echo $ht ?>/cursos">Cursos</a></li>
            <li><a href="<?php echo $ht ?>/clases">Clases</a></li>
            <li><a href="<?php echo $ht ?>/foros">Foros</a></li>
          </ul>
        </nav>
      </div>
    </div>
  </header>

  <div class="texto" id="texto">
    <h2><?php if (isset($_SESSION['login'])) {
      echo $_SESSION['login'];?><a href="#" id="m_ajustes"><i class="fa fa-sort-desc" aria-hidden="true"></i></a>
      <div id="ajustes">
        <a href="<?php echo $ht ?>/user/<?php echo $_SESSION['url'] ?>">Ver perfil</a>
        <a href="#">Ajustes</a>
        <a href="" id="logout" data-id="<?php echo $_SESSION['url'] ?>">Salir</a>
      </div>
    <?php } else { ?>
      <a href="<?php echo $ht ?>/login/login">Inicia</a> o <a href="<?php echo $ht ?>/login/signup">registra</a> tu cuenta
    <?php } ?></h2>
  </div>
<div class="contenedor formularios">
  <span id="msg"></span>
  <?php
    if ($partes_ruta[3] == 'login') {
      include 'login.php';
    } elseif ($partes_ruta[3] == 'signup') {
      include 'signup.php';
    }
  ?>
</div>
<script src="<?php echo $ht ?>/js/particles.js"></script>
<script src="<?php echo $ht ?>/js/particulas.json"></script>

<div id="notif">
</div>

</body>
</html>
var urla = "http://localhost/Cursos";

  function es_notify(e) {
    e.preventDefault();
    console.log($(this).parent().html());
  };
  $('.closenot').click(es_notify);

  function notify(texto, tipo) {
    $('#notif').show();
    var not = $('#notif').html();
    $('#notif').html(not+'<div class="notfy '+tipo+'">'+texto+'<a href="#" class="closenot"><i class="fa fa-times" aria-hidden="true"></i></a></div>');
    not = $('#notif').html();
    $('.notfy').fadeIn(300).delay(3000);
  }
 
 
  function dt_ajus() {
  }
 
  function logout(e) {
    e.preventDefault();
    var url = urla+'/Users/procesos/logout.php';
    $.ajax({
      type: "post",
      url: url,
      data: $(this).data('id'),
      success: function(data){
        notify(data, 'success');
        $('#texto').load(urla+'/Users/dt_ajus.php');
      }
    });
  };
  $('#logout').click(logout);
 
 
  function e_regist() {
    var url = $("#form_signup").attr('action');
    $.ajax({
      type: "post",
      url: url,
      data: $("#form_signup").serialize(),
      success: function(data){
        console.log(url);
        $("#msg").html(data);
      }
    });
    return false;
  }
  $('#form_signup').submit(e_regist);
 
  function e_login() {
    var url = $("#form_login").attr('action');
    $.ajax({
      type: "post",
      url: url,
      data: $("#form_login").serialize(),
      success: function(data){
        $('#texto').load(urla+'/Users/dt_ajus.php');
        if (data == 'Has iniciado sesi&oacute;n correctamente.') {
          notify(data, 'success');
        }
      }
    });
    return false;
  }
  $('#form_login').submit(e_login);
 
  $('#m_ajustes').click(function(e) {
    e.preventDefault();
    if ($('#ajustes').is(":visible")) {
      $('#ajustes').hide();
    } else {
      $('#ajustes').show();
    }
  });
 
  $('#privacidad').change(function() {
    if ($('#privacidad').val() == 1) {
      $('#codigo_priv').show();
    } else {
      $('#codigo_priv').hide();
    }
  });
Ese es todo mi código
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 142
Plata
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

No detecta cuando doy clic

Publicado por Horroroso (65 intervenciones) el 19/09/2017 19:11:11
Hola, el problema que tienes es que los elementos con la clase 'closenot' son creados dinamicamente.

Para corregir esto, utiliza:

1
$(document).on('click','.closenot',es_notify);
en lugar de
1
$('.closenot').click(es_notify);

o puedes activar el evento click cada vez que agregas, despues de:
1
$('#notif').html(not+'<div class="notfy '+tipo+'">'+texto+'<a href="#" class="closenot"><i class="fa fa-times" aria-hidden="true"></i></a></div>');
incluye
1
$('.closenot').off().on("click",es_notify);

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar