Чистый JavaScript
Проверьте, содержит ли выбранный элемент класс 'action-2'.
performAction = (e) => {
if (e.className.indexOf('action-2') === -1){
console.log('Perform Action 1')
}
else {
console.log('Perform Action 2')
}
}
<button type="button" class="btn action-complete-task" onclick="performAction(this)">Action 1</button>
<button type="button" class="btn action-complete-task action-2" onclick="performAction(this)">Action 2</button>
Лучшее решение, которое я нашел для этой проблемы, - иметь следующее в общем заголовке:
// compiler_warning.h
#define STRINGISE_IMPL(x) #x
#define STRINGISE(x) STRINGISE_IMPL(x)
// Use: #pragma message WARN("My message")
#if _MSC_VER
# define FILE_LINE_LINK __FILE__ "(" STRINGISE(__LINE__) ") : "
# define WARN(exp) (FILE_LINE_LINK "WARNING: " exp)
#else//__GNUC__ - may need other defines for different compilers
# define WARN(exp) ("WARNING: " exp)
#endif
Затем используйте
#pragma message WARN("your warning message here")
во всем коде вместо #warning
В MSVC вы получите следующее сообщение:
Поскольку Вы теперь обнаружили, #warning
не стандартная функция, таким образом, Вы не можете использовать ее с компиляторами, которые не поддерживают ее. Если Вы захотите, чтобы Ваш код работал через платформы, то Вы не будете использовать #warning
вообще - или, по крайней мере, не в коде, который MSVC предназначается для обработки (он мог быть предварительно обработан #ifdef
или эквивалентный). Следовательно:
#ifdef __GNUC__
#warning(warning message)
#else
#pragma NOTE(warning message)
#endif
Но это повторяет сообщение, и я уверен, что Вы имели в виду не выполнение этого - и это является большим; Вы только использовали бы его очень редко. Вы, возможно, также должны были бы иметь дело с другими компиляторами, чем GCC (и я не достаточно знаком с MSVC, чтобы знать, как определить его надежно).
Это было бы хорошо если #warning
были стандартизированы; это не стандартизировано в C99.
(Был, однажды на давным-давно, ТАК вопрос о таких опциях, которые могли быть добавлены к C и #warning
подошел там.)
См. также: Мобильность #warning директивы препроцессору
Охрана их с #if операторами. Ищите символ, это определяется одним компилятором, но не другим.
#ifdef _MSC_VER
#pragma NOTE(my warning here)
#else
#warning(my warning here)
#endif
Довольно ужасный, но я не вижу иначе.