[英]jQuery function is not working as i planned, DIVs just disappear on click
我這里有一個腳本,除了一個小細節外,它的工作原理令人驚訝。 它基本上是作為單擊功能運行的,在單擊鏈接時淡入和淡出某些DIV。
但是問題是,當您單擊頁面上的“任何位置”時,它將刪除DIV並保留空白的內容區域,直到您單擊其中一個鏈接。 顯然這是一個問題。
由於NDA的原因,我無法使用確切的代碼,但這是我在div中僅使用一些純文本的相同設置。
只需單擊鏈接以查看功能,然后單擊頁面上的其他任何位置(在div中,在空白處,無論如何),然后觀察div消失。 我知道這就是javascript正在調用的內容,但是我不知道如何在div中禁用點擊,因此不會發生。 此外,如何執行此操作,這樣也不會禁用該div中的鏈接。
任何幫助是極大的贊賞。 該網站可以挽救生命。
這是我從本網站上編輯下來的原始代碼,以顯示我的基本布局。 基本上是一連串的內聯鏈接,當單擊它們時,它們會將DIVS的一部分更改為div的另一部分:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var gLastH = null;
var gLastId = null;
$('.toggle').click(function(e) {
$('.toggleh:visible').fadeOut('slow');
gLastId = $(this).attr('id');
console.log('#' + gLastId + 'h');
gLastH = $('#' + gLastId + 'h');
$(gLastH).fadeIn('slow');
e.stopPropagation();
});
$('*').click(function(e) {
if ($(this).attr('id') != gLastId) {
$(gLastH).fadeOut('slow');
}
e.stopPropagation();
});
});
</script>
</head>
<body>
<div id="menubar">
<a href="#" onclick="return false;" class="toggle" id="toggle1" style="display: inline;">
text here</a>
<a href="#" onclick="return false;" class="toggle" id="toggle2" style="display: inline;">
text here</a>
<a href="#" onclick="return false;" class="toggle" id="toggle3" style="display: inline;">
text here</a>
<a href="#" onclick="return false;" class="toggle" id="toggle4" style="display: inline;">
text here</a>
<div class="toggleh" id="toggle1h">
some description in here I suppose
</div>
<div class="toggleh" id="toggle2h" style="display: none;">
some description in here I suppose #2dsfds sdfdsfa sdf
</div>
<div class="toggleh" id="toggle3h" style="display: none;">
some description in here I suppose #3dffdfasdfdsfdfasf
</div>
<div class="toggleh" id="toggle4h" style="display: none;">
some description in here I suppose #4 dfdafa
</div>
</div>
</body>
</html>
$('*').click(...
為所有元素(*)設置點擊處理程序。您可以刪除此函數。
這就是這段代碼的作用:
$('*').click(function(e) {
if (this.id != gLastId) {
$(gLastH).fadeOut('slow');
}
e.stopPropagation();
});
它選擇了文檔中的所有元素(包括html
, head
和body
並在其中附加了單擊處理程序。)單擊文檔時,它將比較id
(可能為空),然后淡出顯示的div。
沒有該代碼的演示 。
不是真正的專家,但這似乎是有問題的部分
$('*').click(function(e) {...............}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.