我已經檢查了一些StackOverflow上的鏈接,但似乎沒有任何幫助我的問題。 I have a small site here在頁面中間有一個JQuery手風琴導航。JQuery與WordPress網站上的兩個點擊腳本衝突
應該發生的事情是當我點擊其中一個主要鏈接時,手風琴應該滑下來並顯示子鏈接。點擊它會滑下一個名爲#panel的div,它應該帶入動態內容。內容不會被加載,但面板不會滑落。如果我刪除了動態內容的Javascript,面板動畫確實有效。
很顯然,這裏有衝突,但我不確定它可能會治癒它。已經嘗試添加evt.preventDefault();到我的點擊功能,但無濟於事。下面是面板,我想補充的開啓和關閉的代碼腳本的第二個例子中,我試圖做到這一點:
//Opening and closing the top bar
var topBarHeight = jQuery('#page-con').height();
var topBarMargin = -topBarHeight - 1;
var topBarOpen = false;
function topBarContentSizeCheck(){
topBarHeight = jQuery('#page-con').height();
if(topBarOpen==false){
jQuery('#panel').css({
height: 0
});
}
else{
jQuery('#panel').css({
height: topBarHeight
});
}
}
jQuery('#panel').css({
height: 0
});
jQuery('#nav-main ul ul li a').click(function(evt){
var href = jQuery(this).attr('href');
if(href=="#panel"){
if(topBarOpen==false){
topBarOpen = true;
jQuery('#panel').animate({
height: topBarHeight,
useTranslate3d: true
});
}
else{
topBarOpen = false;
jQuery('#panel').animate({
height: 0,
useTranslate3d: true
});
jQuery('html,body').animate({
scrollTop: 0,
useTranslate3d: true
}, 400);
}
return false;
}
});
jQuery('#closelink').click(function(evt){
evt.preventDefault();
topBarOpen = false;
jQuery('#panel').animate({
height: 0
});
jQuery('html,body').animate({
scrollTop: 0
}, 400);
return false;
});
</script>
然後將代碼加載動態內容(更小的):
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery.ajaxSetup({cache:false});
jQuery('#nav-main ul li a').click(function(){
var post_url = $(this).attr("href");
var post_id = $(this).attr("rel");
jQuery("#page-con").html("loading...");
jQuery("#page-con").load(post_url);
window.location.hash = post_id;
return false;
});
});
</script>
關於如何使這兩個腳本打好的任何想法?
* UPDATE *
所以我決定將兩次單擊功能爲一體的結合。它有用但不完全。該面板現在降下來,但文本沒有加載到#page-con div中。控制檯沒有這樣的說法。它甚至列出它確實對服務器進行了適當的調用。這是新的代碼。
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery.ajaxSetup({cache:false});
jQuery(".btn-slide").click(function(){
var post_id = jQuery(this).attr("rel")
jQuery("#page-con").html("loading...");
jQuery("#page-con").load("http://upsilon.lunariffic.com/~swstr0/swsg-ajax/",{id:post_id});
jQuery("#panel").slideToggle("slow");
jQuery(this).toggleClass("active");
return false;
});
});
</script>
我只是試圖加載內容到#page-con div。這意味着我需要從ABOUT,SERVICES和CLIENTS的所有子鏈接加載,但由於它沒有子節點,所以還需要加載主CONTACT鏈接。 –
我試過你的代碼,但它實際上讓事情變得更糟。現在點擊鏈接不會使#panel div向下,也不會加載內容。 –
好的,我只是想確定你是故意針對所有的鏈接。也許你可以把東西放在jsfiddle或codepen上?不知道從哪裏走,沒有一些代碼可以玩 – ian