2013-11-23 75 views
0

即時通訊將我自制的幻燈片jQuery腳本整合到wordpress中。wordpress onClick問題

到目前爲止,我瞭解到,您必須使用集成腳本wp_enqueue_script硬盤的方式,但現在我遇到我的上一個標籤FON的onclick運行我的功能,功能我用更改幻燈片等等,等等

在我自釀的幻燈片劇本我都包裹着我所有的jQuery代碼放到一個包裝

(function($) { // OPEN WRAPPER 
    // SCRIPTS 
})(jQuery); // CLOSE WRAPPER 

,以便更好地解釋我的問題這裏是一些理論上的虛擬代碼:

jQuery的幻燈片腳本:

(function($) { // OPEN WRAPPER 

$(window).load(function() { 
// INIT my slideshow 
}); 

function callJsFunction(num){ 
alert("function executed perfectly"+num); 
}; 

})(jQuery); // CLOSE WRAPPER 

HTML文件:

... 
<a href="#" onclick="callJsFunction(3); return false"> CLICK ME </a> 
... 

不管我嘗試在WordPress的3.7.x的血腥功能不會運行,任何想法,爲什麼這是行不通的,我GOOGLE的年齡但沒有?沒有找到答案,任何關於jQuery到WP的新手家庭醞釀的文章也將不勝感激:D

+0

不換你的功能,否則它只是其包裝範圍 –

回答

2

callJsFunction是另一個自我執行的函數範圍,它不在該函數的範圍之外,所以你可以如果從主播那裏打電話的話。

(function($) { // creates new scope (and BTW does not wait for DOM ready) 

    function callJsFunction(num){} // only available inside this scope 

})(jQuery); 

刪除內聯事件處理程序:

<a href="#" id="something_unique" data-num="3"> CLICK ME </a> 

和使用jQuery

jQuery(function($) { 
    $('#something_unique').on('click', function() { 
      var num = $(this).data('num'); 
      alert("function executed perfectly" + num); 
    }); 
}); 
+0

啊哈內可用的,嗯,這可能是對我的腳本來說是一個嚴重的問題,因爲我調用了很多運行jQuery代碼的函數。 另一個僞代碼: ** text ** function callJsFunction(num){(「。slide-id - 」+ num).fadeIn(300); }; ** **文字 會是更好地跳過包裝和我的腳本替換所有$(..)使用jQuery(..),是一種更批准的方法,即時通訊種在這裏學習的? )。 我想到的另一種方法是將主要的jQuery代碼包裝在一個包裝中,然後在我的函數中使用jQuery(...)... 哪種方法會讓真正的主人選擇:)。 在此先感謝:) – mads

+0

您可以跳過包裝並使用jQuery而不是$,但是必須將腳本從頭部移出並將其包含在關閉主體標記之前。當包含腳本時,Wordpress有一個選項。 – adeneo

+0

ohhh廢話..這是我的劇本壞消息,廢話..我會妥善做一些測試嗯。但感謝快速響應:) – mads