Подтвердить что ты не робот

Как сделать "Если щелкнули еще..."

Я пытаюсь использовать jQuery, чтобы сделать что-то вроде

if(jQuery('#id').click) {
    //do-some-stuff
} else {
    //run function2
}

Но я не уверен, как это сделать с помощью jQuery? Любая помощь будет принята с благодарностью.

Изменить: я пытаюсь запустить функцию, если щелчок #id был нажат, а конкретно он не был нажат, а затем запустить функцию 2? то есть сначала нужно проверить, что #id было нажато перед запуском function2?

4b9b3361

Ответ 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.