2010-09-24 3 views
3

Не знаете, как правильно сформулировать этот вопрос, но я дам ему шанс. (Если у вас есть предложение о том, как правильно это сформулировать, чтобы другие могли его найти, скажите мне, и я отредактирую его).Обработка кликов для jQuery AJAX (с PHP)

Я хочу знать лучшие методы обработки кликов на странице, которые затем обрабатываются с использованием AJAX. Я временно с помощью кода, который выглядит, как это в HTML:

<a href="#clickable">Click me!</a> 

И в JQuery я обрабатывать щелчки от привязки click к href.

Конечно, я знаю, что вы не должны сообщать об этом пользователю.

Как я могу обрабатывать эти клики?

+0

Что вы пытаетесь сделать onClick? Будет ли он запускать тот же запрос ajax для всех ссылок? –

ответ

1

Вы должны сделать свой HTML так, чтобы он работал, если Javascript выключен. Не смешивайте контент с функциональностью, поэтому встроенный Javascript обычно не является хорошим решением.

Таким образом, в вашем случае:

<a href="some/working/path.php" class="ajax">Meaningful description!</a> 

Затем вы можете добавить класс (или проверить текст внутри, или что-то еще), чтобы справиться с этим на стороне Javascript.

Обязательно используйте event.preventDefault(), чтобы остановить изменение страницы, если включен Javascript.

Так что JQuery будет

// Target only anchors with class "ajax" 
$("a.ajax").click(function(event) { 

    // Handle AJAX etc here. 
    // ... 

    event.preventDefault(); // <== Don't navigate away from page 
}); 
+0

Да, я использую встроенный JS, но делать это по классам, конечно, кажется разумным. Есть ли причина, по которой я обычно видел 'e.preventDefault();' позиционировали до любого другого кода в fn? –

+0

@Josh - Не важно, будет ли это в конце или в начале - все, что вы найдете более ясным. Это предотвращает стандартное действие. Первый аргумент обратного вызова - это событие, поэтому вы можете называть его любым, что хотите, или просто использовать 'arguments [0]' .... Я использовал 'event' только для того, чтобы быть ясным, но вы могли бы сделать. .click (function (e) {e.preventDefault(); ...}) 'или' .click (function() {arguments [0] .preventDefault(); ...}) 'или все, что вы хотите назвать. –

+0

Спасибо. Я использовал его все время, но не понимал, что он будет вызван так же, если он пришел после другого кода. Мне все же было бы яснее, чтобы выразить это первым. Но все же хорошо учиться. –

0

Я не очень уверен, чтобы понять ваш вопрос тоже XD

Вы можете обрабатывать щелчок, делая что-то вроде

$("a").click(function() { 
    // do some stuff 
}); 

ли это ответ на ваш вопрос?

Редактировать: Ok.

Вам просто нужно сделать что-то вроде этого:

<a href='link' onClick='return MyClass.myFunction()'>keyword </a> 

Если я хорошо помню, вы возвращаете FALSE в JS, чтобы остаться на той же странице (и сделать какой-то процесс с Ajax). Если если JS не активирован, будет использоваться PHP ;-)

+0

Не совсем. По сути, я бы хотел, чтобы ссылка обрабатывала PHP, если JS не включен. Поэтому мне бы очень хотелось, чтобы теги '' были основным средством взаимодействия с кодом. –

+0

Кстати, как вы обрабатываете «<» caracter на Stack в

? –
                        
                            
    Vinzius
                                
                            
                        
                    

0

Я обычно имеют HREF ссылки на статические страницы PHP, а затем использовать JavaScript, чтобы изменить ссылку HREF на страницу обработки Ajax, то вы можете ссылаться на него в ajax-вызов.