2010-10-04 6 views
1

У меня вопрос ниже - это список с привязными ссылками теперь, когда ссылки нажимаются. Я не хочу, чтобы браузер переходил на эту веб-страницу, вместо этого я хочу, чтобы браузер оставался на текущей странице и отображал список в окне предупреждения пользователю. Я знаю, что это может быть сделано с помощью javascript, возможно, с событием onclick в элементе списка и отображением окна предупреждения, но как остановить браузер, чтобы перейти на эту веб-страницу.javascript click question question

<ul id='list_o_links'> 
    <li><a href='http://www.google.com'>List Item1</a></li> 
    <li><a href='http://www.yahoo.com'>List Item2</a></li> 
    </ul> 

ответ

1

Вы остановить браузер от идти к месту назначения связи по телефону event.preventDefault() или возврата false в связанном обработчика событий. Я думаю, что первый является более явным:

var alert_instead_of_following_link = function (event) { 
    event.preventDefault(); 
    alert(this.href); 
}; 

$("#list_o_links a").bind("click", alert_instead_of_following_link); 
+0

, кстати, неважно, включите ли вы' preventDefault() 'как первую, последнюю или среднюю строку функции. 'return false' должен быть последним, так как он останавливает (возвращает) функцию. –

1
$("#list_o_links").children().click(function() { 
    var list = []; 

    $.map($("#list_o_links").children(), function (elem) { 
     list.push($(elem).text()); // take the text of each list item 
    }); 

    alert(list.join(', ')); 

    return false; // stop the browser from going to the link 
}); 

jsfiddle example

+0

Я нахожу '.each()' проще использовать, когда это возможно:.. '$ ("# Ул list_o_links") дети() каждая (функция() {список .push ($ (this) .text());}); ' –