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 для проверки и сопоставления содержимого двух разных строк.
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:
)class="thickbox"
)href
attribute of the link add the following anchor: #TB_inline
In the href
attribute after the #TB_inline
add the following query string on to the anchor:
?height=300&width=300&inlineId=myOnPageContent
Change the values of height, width, and inlineId in the query accordingly (inlineID is the ID value of the element that contains the content you would like to show in a ThickBox.
#TB_inline?height=155&width=300&inlineId=hiddenModalContent&modal=true
) so that closing a ThickBox will require calling the tb_remove()
function from within the ThickBox. See the hidden modal content example, where you must click yes or no to close the ThickBox.Заголовок вопроса говорит: «Как я могу имитировать щелчок якоря в 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 дает лучший ответ на этот вопрос.
Вам нужно подделать щелчок якоря? С сайта 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.
Я бы посоветовал взглянуть на Selenium API, чтобы увидеть, как они запускают клик на элемент в браузерной манере:
Ищите функцию BrowserBot.prototype.triggerMouseEvent
.
Недавно я обнаружил, как запускать событие щелчка мыши через 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>
Используя скрипт Jure, я сделал это, чтобы легко "щелкать" столько элементов, сколько вы хотите.
Я только что использовал Google Reader для более 1600 элементов, и он отлично работал (в Firefox)!
var e = document.createEvent('MouseEvents');
e.initEvent( 'click', true, true );
$(selector).each(function(){this.dispatchEvent(e);});
Вы можете создать форму через jQuery или в коде HTML страницы с действием, которое имитирует вашу ссылку href:
var link = $('#anchor_link').attr('href');
$('body').append('<form id="new_form" action="'+link+'"></form>');
$('#new_form').submit();
JQuery('#left').triggerHandler('click');
отлично работает в Firefox и IE7. Я не тестировал его в других браузерах.
Если вы хотите запускать автоматические клики пользователя, сделайте следующее:
window.setInterval(function()
{
$('#left').triggerHandler('click');
}, 1000);
Чтобы имитировать щелчок по привязке при переходе на страницу, я просто использовал jQuery для анимации свойства scrollTop в $ (документ) .ready.
Нет необходимости в сложном триггере, и он работает в IE 6 и во всех других браузерах.