2013-12-03 3 views
0

У меня проблема с бурлящим событием.Как добавить ссылку внутри div?

У меня есть HTML как

<div id='title-bar1'> 
    title bar 
    <div class='editDiv'> 
     <a class='edit' href='#'>Edit</a> 
    </div> 
</div> 


$('#edit').on('click', function(e){ 
    e.stopPropagation(); 
     //do B 
}) 


$('#title-bar1').on('click', function(e){ 
    e.preventDefault(); 
    //do A  
}) 

title-bar1 является ДИВ, что обернуть edit ссылку. Моя проблема в том, что я не могу показаться do B, когда я нажимаю ссылку edit. Это всегда do A. Я добавляю stopPropagation и все еще не работает. Может кто-нибудь мне помочь? Большое спасибо!

+1

'edit' - это класс, а не идентификатор. Селектор должен быть '$ ('. Edit')'. –

+1

У вас нет контроля с ID = "редактировать" только класс. Возможно, вы имели в виду '$ ('. Edit')'? –

+0

Извините, ребята, это глупая ошибка. Спасибо за помощь. – FlyingCat

ответ

3

Возможно, я ошибаюсь, и я уверен, что кто-то другой исправит меня, однако, на основе вашего кода, который вы «редактируете» как класс.

При ссылке на класс было бы $ ('редактировать.) OnClick

В CSS, чтобы изменить элемент, который имеет идентификатор = редактировать, можно было бы сделать #edit {цвет: красный;}.

Где класс будет .edit {color: red; }

Таким образом, функция, где вы останавливаете прогагацию, никогда не загорается.

1
<div id='title-bar1'> 
    title bar 
    <div class='editDiv'> 
     <a class='edit' href='#'>Edit</a> 
    </div> 
</div> 


$('.edit').on('click', function(e){ 
    e.stopPropagation(); 
     //do B 
}) 


$('#title-bar1').on('click', function(e){ 
    e.preventDefault(); 
    //do A  
}) 
1

Изменение:

$('#edit').on('click', function(e){ 
e.stopPropagation(); 
    //do B 

})

Кому:

$('.edit').on('click', function(e){ 
e.stopPropagation(); 
    //do B 

})

Класс =. // перед селектором

ID = # // перед селектором

это помогает!

1
<div id='title-bar1'> 
    title bar 
    <div class='editDiv'> 
     <a class='edit' href='#'>Edit</a> 
    </div> 
</div> 


$('.edit').on('click', function(e){ 
// ^edit is a class not an id 
    e.stopPropagation(); 
     //do B 
}) 


$('#title-bar1').on('click', function(e){ 
    e.preventDefault(); 
    //do A  
}) 
Смежные вопросы