Как я могу имитировать щелчок якоря через JQuery?

 1.  System.out.println(sb1 == sb2);  

Метод equals StringBuffer возвращает true только тогда, когда объект StringBuffer сравнивается с самим собой. Он возвращает false по сравнению с любым другим StringBuffer, даже если два содержат одни и те же символы.

Это связано с тем, что «==» проверяет ссылочное равенство и поскольку оба sb1 и sb2 - разные ссылки на объекты, поэтому вывод в этом случае «false»

Тем не менее, если вы хотите проверить, равно ли содержимое в этих двух объектах StringBuffer, вы можете использовать это:

sb1.toString().equals(sb2.toString())

2. System.out.println(sb1.equals(sb2));

Это дает output как «false», потому что метод .equals () не был переопределен в классе StringBuffer. Поэтому он использует метод .equals () из своего родительского класса Object. В классе объектов .equals () записано для проверки ссылочного равенства.

Обратите внимание, что sb3.equals (sb4) вернет «true» в случае String. Поскольку метод .equals () был переопределен в классе String для проверки и сопоставления содержимого двух разных строк.

143
задан Hunsu 16 July 2015 в 10:11
поделиться

9 ответов

Try to avoid inlining your jQuery calls like that. Put a script tag at the top of the page to bind to the click event:

<script type="text/javascript">
$(function(){
    $('#thickboxButton').click(function(){
        $('#thickboxId').click();
    });
});
</script>

<input id="thickboxButton" type="button" value="Click me">
<a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a>

Edit:

If you're trying to simulate a user physically clicking the link, then I don't believe that is possible. A workaround would be to update the button's click event to change the window.location in Javascript:

<script type="text/javascript">
$(function(){
    $('#thickboxButton').click(function(){
        window.location = $('#thickboxId').attr('href');
    });
});
</script>

Edit 2:

Now that I realize that Thickbox is a custom jQuery UI widget, I found the instructions here:

Instructions:

123
ответ дан 23 November 2019 в 22:51
поделиться

Заголовок вопроса говорит: «Как я могу имитировать щелчок якоря в jQuery?». Ну, вы можете использовать методы «trigger» или «triggerHandler», например, так:

<script type="text/javascript" src="path/to/jquery.js"></script>
<script type="text/javascript" src="path/to/thickbox.js"></script>
<script type="text/javascript">
$(function() {
    $('#btn').click(function() {
        $('#thickboxId').triggerHandler('click');
    })
})
</script>
...
<input id="btn" type="button" value="Click me">
<a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a>

Не проверенный, настоящий сценарий, но я уже использовал trigger и др., И они работали легко .

UPDATE
triggerHandler на самом деле не делает то, что хочет OP. Я думаю, что 1421968 дает лучший ответ на этот вопрос.

6
ответ дан 23 November 2019 в 22:51
поделиться

Вам нужно подделать щелчок якоря? С сайта Thickbox:

ThickBox может быть вызван из элемента ссылки, элемента ввода (как правило, кнопки) и элемента области (карты изображений).

Если это приемлемо, это должно быть так же просто, как и установка Thickbox. класс для самого ввода:

<input id="thickboxButton" type="button" class="thickbox" value="Click me">

Если нет, я бы порекомендовал использовать Firebug и поместить точку останова в метод onclick элемента привязки, чтобы увидеть, запускается ли он только при первом щелчке.

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

Хорошо, Я должен был попробовать это для себя, и для меня в значительной степени точно ваш код работал и в Chrome, и в Firefox:

<html>
<head>
<link rel="stylesheet" href="thickbox.css" type="text/css" media="screen" />
</head>
<body>
<script src="jquery-latest.pack.js" type="text/javascript"></script>
<script src="thickbox.js" type="text/javascript"></script>
<input onclick="$('#thickboxId').click();" type="button" value="Click me">
<a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a>
</body>
</html>

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

Другое, возможно, то, что мы используем разные версии jquery / Thickbox. Я использую то, что я получил со страницы Thickbox - JQuery 1.3.2 и Thickbox 3.1.

2
ответ дан 23 November 2019 в 22:51
поделиться

Я бы посоветовал взглянуть на Selenium API, чтобы увидеть, как они запускают клик на элемент в браузерной манере:

Ищите функцию BrowserBot.prototype.triggerMouseEvent.

5
ответ дан 23 November 2019 в 22:51
поделиться

Недавно я обнаружил, как запускать событие щелчка мыши через jQuery.

    <script type="text/javascript">
    var a = $('.path > .to > .element > a')[0];
    var e = document.createEvent('MouseEvents');
    e.initEvent( 'click', true, true );
    a.dispatchEvent(e);
    </script>
19
ответ дан 23 November 2019 в 22:51
поделиться

Используя скрипт Jure, я сделал это, чтобы легко "щелкать" столько элементов, сколько вы хотите.
Я только что использовал Google Reader для более 1600 элементов, и он отлично работал (в Firefox)!

var e = document.createEvent('MouseEvents');
e.initEvent( 'click', true, true );
$(selector).each(function(){this.dispatchEvent(e);});
1
ответ дан 23 November 2019 в 22:51
поделиться

Вы можете создать форму через jQuery или в коде HTML страницы с действием, которое имитирует вашу ссылку href:

click here.

var link = $('#anchor_link').attr('href');
$('body').append('<form id="new_form" action="'+link+'"></form>');
$('#new_form').submit();
2
ответ дан 23 November 2019 в 22:51
поделиться

JQuery('#left').triggerHandler('click'); отлично работает в Firefox и IE7. Я не тестировал его в других браузерах.

Если вы хотите запускать автоматические клики пользователя, сделайте следующее:

window.setInterval(function() 
    {
        $('#left').triggerHandler('click');
    }, 1000);
1
ответ дан 23 November 2019 в 22:51
поделиться

Чтобы имитировать щелчок по привязке при переходе на страницу, я просто использовал jQuery для анимации свойства scrollTop в $ (документ) .ready. Нет необходимости в сложном триггере, и он работает в IE 6 и во всех других браузерах.

2
ответ дан 23 November 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: