Как сделать "Если щелкнули еще..."
Я пытаюсь использовать jQuery, чтобы сделать что-то вроде
if(jQuery('#id').click) {
//do-some-stuff
} else {
//run function2
}
Но я не уверен, как это сделать с помощью jQuery? Любая помощь будет принята с благодарностью.
Изменить: я пытаюсь запустить функцию, если щелчок #id был нажат, а конкретно он не был нажат, а затем запустить функцию 2? то есть сначала нужно проверить, что #id было нажато перед запуском function2
?
Ответы
Ответ 1
Вам следует избегать использования глобальных варов и предпочитайте использовать .data()
Итак, вы бы сделали:
jQuery('#id').click(function(){
$(this).data('clicked', true);
});
Затем, чтобы проверить, было ли нажато и выполнить действие:
if(jQuery('#id').data('clicked')) {
//clicked element, do-some-stuff
} else {
//run function2
}
Надеюсь, это поможет. Приветствия
Ответ 2
Способ сделать это будет с булевым в более высокой области:
var hasBeenClicked = false;
jQuery('#id').click(function () {
hasBeenClicked = true;
});
if (hasBeenClicked) {
// The link has been clicked.
} else {
// The link has not been clicked.
}
Ответ 3
Щелчок - это событие; вы не можете запросить элемент и спросить его, нажимается ли оно или нет. Как насчет этого:
jQuery('#id').click(function () {
// do some stuff
});
Тогда, если вы действительно этого хотели, вы могли бы просто создать цикл, который выполняется каждые несколько секунд с помощью // run function..
Ответ 4
var flag = 0;
$('#target').click(function() {
flag = 1;
});
if (flag == 1)
{
alert("Clicked");
}
else
{
alert("Not clicked");
}
Ответ 5
Это все, что вам нужно: http://api.jquery.com/click/
Наличие "else" не применяется в этом сценарии, иначе это означает "не нажимать", и в этом случае вы просто ничего не сделали бы.
Ответ 6
На самом деле вы можете называть элемент, не нажимая, не так ли?
jQuery('#id').click(function()
{
// execute on click
}).hover(function()
{
// execute on hover
});
Уточните свой вопрос, тогда мы сможем понять лучше.
Просто, если элемент не нажат, выполните setInterval
, чтобы продолжить процесс до щелчка.
var checkClick = setInterval(function()
{
// do something when the element hasn't been clicked yet
}, 2000); // every 2 seconds
jQuery('#id').click(function()
{
clearInterval(checkClick); // this is optional, but it will
// clear the interval once the element
// has been clicked on
// do something else
})
Ответ 7
Возможно, вы ищете что-то вроде этого:
$(document).click(function(e)
{
if($(e.srcElement).attr('id')=='id')
{
alert('click on #id');
}
else
{
alert('click on something else');
}
});
jsfiddle
Вы можете получить указатель на элемент с кликом, используя event.srcElement
.
Итак, все, что вам нужно сделать, это проверить атрибут id элемента clicked.