Jump to content
  • 0

В чужом вордпресс плагине ошибка при вызове функции


mstdmstd
 Share

Question

Всем привет,

Понадобилось поковырять чужой вордпрессовсий плагин WOOEXIM - WooCommerce Export Import Plugin
И при попытке добавить свой JS функционал наткнулся на странную ошибку что при клике на чекбоксе не находится функция :

ReferenceError: cbx_attribute_onChange is not defined


При этом cbx_attribute_onChange нормально вызывается при инциализации :
 

    jQuery(document).ready(function($){
        function cbx_attribute_onChange() {
            var class_cbx_attribute_selection = ''
            $("input.class_cbx_attribute:checked").each(function () {
                class_cbx_attribute_selection = class_cbx_attribute_selection + $(this).val() + ','
            });
            alert( "cbx_attribute_onChange  class_cbx_attribute_selection::"+var_dump(class_cbx_attribute_selection) )
            $("#cbx_attributes").val( class_cbx_attribute_selection )
        }
        ...
        $(window).trigger('resize');

        alert( "ALERT::" )

        cbx_attribute_onChange()

    });


Ошибка лезет при клике на чкесбоксе

<input id="cbx_attribute_brand" type="checkbox" class="class_cbx_attribute" value="brand" checked="" onchange="javascript:return cbx_attribute_onChange();">


На очепятку не похоже - проверил.


Вживую можно посмотреть тут Admin Ref
 логин admin  111111
Затем зайти на Page Ref
и нажать на "Upload and Preview"  и откроется форма с 2мя алертами - все отработало нормально
Потом нажать на чекбоксе "Brand(brand)"  и будет ошибка

ReferenceError: cbx_attribute_onChange is not defined




Если же вынести определение    

function cbx_attribute_onChange() {


до блока

    jQuery(document).ready(function($){



то при первом вызове в блоке jQuery инициализации выскакивает ошибка

 Uncaught TypeError: $ is not a function



А как правильно ?

  Спасибо !
 

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Представленипе о про область видимости переменных у меня есть

Непонятно почему тут такие проблемы

Когда пишу свои плагины - я весь JS код выношу как отдельный обьект в отдельный файл - и обращаюсь к нему

 

Не хочется занаово переписывать...

Link to comment
Share on other sites

  • 0
6 часов назад, hedgehog сказал:

Как вариант - внести правки в скрипт и подменять скрипт плагина на свой (wp_deregister_script/wp_register_script)

Подключил отдельным js-файлом через wp_register_style и заработало

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy