2013-11-23 5 views
0

У меня есть некоторые проблемы, связанные с моей домашней слайд-шоу jQuery скрипта в wordpress.wordpress тег onClick вопросы

до сих пор я узнал трудный путь, что вы должны интегрировать скрипты с помощью wp_enqueue_script, но теперь я столкнуться, что моя OnClick на теге FON запускать мои функции, функции я использую, чтобы изменить слайд и т.д. и т.п.

в мой доморощенный слайд-шоу сценарий я обернул весь мой код 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 чертов функция не побежит, ни малейшего представления, почему это не работает, я уже гугле в течение веков, но делали? не найти ответа, также будут оцениваться любые статьи о пивоваренной машине для jQuery для WP: D

+0

не обернуть вашу функцию в противном случае она доступна только внутри своей обертки объема –

ответ

2

callJsFunction находится внутри другой собственной области выполнения функций, и она недоступна вне сферы действия этой функции, поэтому вы можете 't вызвать, если из якоря.

(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

Aha, хммм это может быть серьезная проблема для моего скрипта, так как я вызываю множество функций, на которых запущен jQuery-код. другой Pseudocode: ** текст ** функция callJsFunction (num) { $ (". Slide-id -" + num) .fadeIn (300); }; ** текст ** было бы лучше пропустить оболочку и заменить все $ (..) на jQuery (..) в моем скрипте?, Это более одобренный метод?, Im вид обучения здесь ;). Другой подход, который приходит мне на ум, заключается в том, чтобы обернуть основной код jQuery в оболочку, а затем использовать функции jQuery (...) в моих функциях? ... , какой подход мог бы выбрать настоящий мастер :). спасибо заранее – mads

+0

Вы можете пропустить оболочку и использовать jQuery вместо $, но тогда вам нужно переместить скрипт из головы и включить его непосредственно перед тегом закрывающего тега. У Wordpress есть опция для этого, включая скрипты. – adeneo

+0

ohhh crap .. это плохая новость для моего скрипта, дерьмо .. я правильно сделаю некоторые тесты хммм. но спасибо за быстрый ответ :) – mads

Смежные вопросы