2015-09-24 22 views
0

我搜索了stackoverflow,並且有幾個關於這個問題的主題,但不是我正在尋找的東西。 WordPress的主題,我使用的是最近更新的,現在有這個在他們main.js - 崩潰數據API:如何在main.js中的e.preventDefault()之後在一個頁面上啓用默認?

$(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { 
var $this = $(this), href; 
var target = $this.attr('data-target') 
    || e.preventDefault() 
    || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, ''); //strip for ie7 
var $target = $(target); 
var data = $target.data('bs.collapse'); 
var option = data ? 'toggle' : $this.data(); 
var parent = $this.attr('data-parent'); 
var $parent = parent && $(parent); 

if (!data || !data.transitioning) { 
    if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed'); 
    $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed'); 
} 

$target.collapse(option); 
}); 

的問題是該行e.preventDefault()是阻止從頁面上的下拉菜單中的鏈接打開他們鏈接的內容部分(頁面上有#divs,點擊後會顯示 - display:none - >display:block;

無論如何,我的問題是 - 我可以啓用整個頁面的默認操作?我只需要這個特定的頁面,我不能更改main.js代碼,因爲它會影響其他頁面。我發現的所有解決方案都是關於將onclick返回true,但我希望只有一個<script>...</script>,我可以將其放入頁面內容中,這將啓用此頁面的默認操作 - 如加載或其他內容。如果甚至有可能或者是否必須連接到事件?我很抱歉,但我不是一個JavaScript程序員,我只需要解決什麼更新搞砸..

感謝您的任何意見

回答

0

從您所提供的代碼中,e.preventDefault()

var target = $this.attr('data-target') 
       || e.preventDefault() 
       || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, ''); 

這樣做是:

  1. 試圖分配的的值,如果相關[data-toggle=collapse]元素沒有data-target屬性只命中到target變量。
  2. 如果元素上沒有data-target屬性,請將其設置爲調用e.preventDefault()的結果。
  3. 如果失敗(它總是會e.preventDefault()不返回任何內容,將其設置爲元素的href,更換了幾個位。

,如果你的元素有一個data-target屬性的e.preventDefault()不會被打:

<div data-target="..." data-toggle=collapse></div> 
+0

你好,謝謝你的答案,我想數據目標和數據切換分配給我的按鈕,他們打開的內容,但問題是,當你點擊一個按鈕/鏈接,它不會隱藏上一個按鈕打開的內容。要關閉它,您需要單擊該按鈕試。這裏是網站:http://stowarzyszeniestop.pl/stop/baza-trenerow/ –

+0

我分配數據目標的下拉菜單位於右上角:「Certyfikat」。 –

相關問題