大家好,感谢回复:)。 我有这个代码用于模态图库
var $overlay = $("<div id='overlay'></div>");
var $image = $("<img class='overlayImage'>");
var $caption = $("<p></p>");
$overlay.append($image);
$overlay.append($caption);
$(".galleryWrap").append($overlay);
$(".galleryItem").click(function(event) {
event.preventDefault();
var imageLocation = $(this).attr("href");
$image.attr("src", imageLocation);
$overlay.show();
var captionText = $(this).children("img").attr("title");
$caption.text(captionText);
});
假设我想在$overlay.click()
函数中显示下一张图像,例如:
$overlay.click(function()
var imageLocation = $(this).next().attr("href");
$image.attr("src", imageLocation);
$overlay.show()
我可以以某种方式将我的新imageLocation
变量指向.galleryItem
,这是在上一个函数中点击的,以获得下一个兄弟吗?
我知道它可能以其他方式完成,只是玩和试图理解JS:)
答案 0 :(得分:1)
为什么不只是简单地使用一个全局变量,您在this
点击时分配给.galleryItem
?这将使全局变量成为单击的特定库项目。然后,您可以在第二个click
函数中检查此全局变量:
var selectedItem;
$(".galleryItem").click(function(event) {
selectedItem = this; // selectedItem is now assigned to the specific .galleryItem
});
$overlay.click(function(event) {
console.log(selectedItem); // Do something with selectedItem
});
在以下示例中可以看到这一点:
var selectedItem;
$(".galleryItem").click(function(event) {
selectedItem = this; // selectedItem is now assigned to the specific .galleryItem
});
$("#overlay").click(function(event) {
console.log(selectedItem); // Do something with selectedItem
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="1" class="galleryItem">One</div>
<div id="2" class="galleryItem">Two</div>
<div id="3" class="galleryItem">Three</div>
<br />
<div id="overlay">Overlay</div>
希望这有帮助! :)
答案 1 :(得分:0)
您可以在单击处理程序中移动显示逻辑,并使用全局变量来维护状态:
from surveyQuestion in Context.SurveyQuestions
join question in Context.Questions
on surveyQuestion.Question_ID equals question.Question_ID
where surveyQuestion.Survey_ID == surveyId
orderby surveyQuestion.SORT_ORDER
group new { question, surveyQuestion.SORT_ORDER } by surveyQuestion.SECTION into section
select new SurveySection
{
SurveyId = surveyId,
SectionId = section.Key,
Questions = section.OrderBy(q => q.SORT_ORDER)
.Select(q => q.question)
.ToList()
};