2013-11-25 3 views
-1

Состояние: У меня есть div cass = "myDiv" внутри тела.остановка события не работает в jQuery

действие:

  1. , когда я нажимаю на теле. Вызывается функция abc().
  2. Когда я нажимаю (.myDiv), он вызывает функцию xyz().

Задача: Нажатие на тело работает как ожидалось.

но когда я нажимаю на (.myDiv), он вызывает xyz(), но он также вызывает функцию abc().

Я не хочу, чтобы abc() будет вызываться, когда мы нажимаем (.myDiv).

Может быть, мы можем использовать stop(), но он не работает для меня.

<style> 
.mydiv{ 
    height:200px; 
    width:200px; 
    background:#D00E11; 
} 
</style> 
<script> 
$(document).ready(function() { 
    $('body').click(function(e){ 
     alert(1); 
    }); 
$(".myDiv").click(function(e){ 
    e.stopPropagation(); 
}); 
}); 
</script> 
</head> 

<body> 
<div class="mydiv"></div> 
</body> 
+1

А где код? – adeneo

+0

@ ^, на его компьютере;) – Jashwant

+0

теперь я приложил код. – Saurabh

ответ

0

Проблема здесь вы используете неправильный селектор.

<div class="mydiv"></div> 

Изменение:

$(".myDiv").click(function(e){ //Wrong $(".myDiv") 
    e.stopPropagation(); 
}); 

To:

$(".mydiv").click(function(e){ //should be $(".mydiv") 
    e.stopPropagation(); 
}); 
4
$(".mydiv").click(function(e){ 
    e.stopPropagation(); 
}); 

ссылка event.stopPropagation

+0

Я пробовал, но он не работает. – Saurabh

+0

вы можете установить скрипку, тогда я вам помогу –

+0

http://jsfiddle.net/saurabhdsachan/5Ynja/ – Saurabh

Смежные вопросы