Событие jQuery для всех нажатий кнопок / ссылок или изменений DropDown при просмотре - PullRequest
2 голосов
/ 17 августа 2011

Я работаю в asp.net mvc3 и имею частичные представления для моих вкладок и данных для входа. В одном представлении (мой предварительный просмотр) я генерирую несколько изображений, загружаю их в облако и затем отображаю их для пользователя. Пользователь может затем выбрать Cancel или Submit.

Мне бы хотелось, чтобы любая кнопка, ActionLink или раскрывающийся список кроме Submit выполняли функцию отмены (которая включает удаление изображений из облака и некоторые другие вещи), но я не уверен, как получить Обработчик событий jQuery для каждого события, кроме Submit click. В настоящее время у меня есть jQuery-функция «Отмена», связанная с событием щелчка на кнопке Cancel, и теперь необходимо расширить ее использование.

Я подумал, что это говорит само за себя, но если вам нужно увидеть код, просто спросите.

Все возможные события: В моих частичных представлениях у меня есть эти бритвенные помощники HTML: 2 x @Html.ActionLinks и 1 x @Html.DropDownList

Кнопки «Отмена» и «Отправить» имеют следующую форму: <input type="submit" value="Cancel" />

[ОБНОВЛЕНИЕ]: У меня теперь работает событие нажатия, однако я хотел бы использовать e.preventDefault(); для своих нажатий, чтобы оно не меняло представления до завершения отмены / удаления, но затем как синхронно отправить элемент после завершения функции отмены? Я предполагаю, что использую обратный вызов, но я использую e.submit() или e.click() или что-то еще? Я хотел бы, чтобы он работал для <a> тегов и dropDown изменений

Ответы [ 3 ]

2 голосов
/ 17 августа 2011

Как насчет этого?

$("input,a,select").not("input:submit").click(function(e) {
    // do work
});

рабочий пример: http://jsfiddle.net/eqwkD/


Обновление

$("input,a,select").not("#SubmitButton").click(function(e) {
    // do work
});
1 голос
/ 17 августа 2011

Следующий код вызовет функцию cancel при нажатии, если он не относится к типу submit:

$(":input").click(function ({
    if (!$('#myinput').is(':submit')) {
         cancelFunction();
    }
});

Это заставит все кнопки, которые не относятся к типу submit, вызвать кнопку отмены.Если вы хотите быть более конкретным, добавьте идентификатор к кнопке и используйте следующий код:

$(":input").click(function() {
    if (!($('#myinput').attr("id") == "idOfSubmitButton")) {
         cancelFunction();
    }
})
0 голосов
/ 17 августа 2011

Вы можете попробовать использовать селектор: not в вашем обработчике кликов jQuery:

$("input,a,select").not("#submit").click(cancelFunction);

Это выберет все входные элементы , за исключением для элемента с идентификатором 'submit' и свяжет их с вашей функцией отмены.

...