该脚本仅在打开和结束时单击一次

时间:2019-12-29 作者:Василий Маркин

我的代码有什么问题?需要修复什么,以便脚本始终在单击按钮时工作?

<script type="text/javascript">
// Выполнить асинхронный Ajax-запрос с помощью метода POST.
// Отправить данные на сервер и в случае успеха вывести 
// ответ сервера в диалоговом окне.
jQuery(document).die(\'click\', \'.sale_buton\')  
jQuery(document).on(\'click\', \'.sale_buton\', function(event) {
jQuery.ajax({
                    url: \'/wp-admin/admin-ajax.php\', // сделали запрос 
                    type: "POST", // указали метод
                    data: { // передаем параметры отправляемого запроса
                        action: \'my_ajax_action\', // вызываем хук который обработает наш ajax запрос
                        price: jQuery(this).data(\'price\'), // передаем параметры из кнопки 
                        user: jQuery(this).data(\'user\'), // передаем параметры из кнопки 
                    },
   success: function(data){
     jQuery(\'.results\').html( /*"ИНФОРМАЦИЯ О СРАЖЕНИИ:<br>" + */data );
}
 })
return false;
/* as before */ });

jQuery(document).on(\'click\', \'.close\', function() { 
jQuery(\'.results\').remove();
return false;
/* as before */ });

</script>

1 个回复
SO网友:Василий Маркин

通常,以下是我的解决方案代码:

<script type="text/javascript">
    // Выполнить асинхронный Ajax-запрос с помощью метода POST.
    // Отправить данные на сервер и в случае успеха вывести 
    // ответ сервера в диалоговом окне.
    //jQuery(document).die(\'click\', \'#order_\'+button.id) ; 

    function showPopup (button) {
        jQuery(document).on(\'click\', \'#\'+button.id, function(event) {
        jQuery.ajax({
                            url: \'/wp-admin/admin-ajax.php\', // сделали запрос 
                            type: "POST", // указали метод
                            data: { // передаем параметры отправляемого запроса
                                action: \'my_ajax_action\', // вызываем хук который обработает наш ajax запрос
                                orderid: jQuery(this).data(\'orderid\'), // передаем параметры из кнопки 
                                user: jQuery(this).data(\'user\'), // передаем параметры из кнопки 
                            },
           success: function(data)

           {
             jQuery(\'.results\').html( /*"ИНФОРМАЦИЯ О СРАЖЕНИИ:<br>" + */data );
             jQuery(\'.results\').show();
          }
         })
        return false;
         /* as before */ 
        });
    };
     function closePopup (button_id) {

    jQuery(document).on(\'click\', \'#close_\'+button_id, function() { 
    jQuery(\'.results\').hide();
    return false;
    /* as before */ });
    }
    </script>
这是前端的一段代码(这只是php文件中代码的一部分-抱歉,我无法显示整个文件):

    echo \'<td style="text-align: center;border-left: none;font-size: 17px;"><button onclick="javascript:showPopup(this);" class="sale_buton checkout-button button alt wc-forward" id="order_\'.$lineItem[\'order_id\'].\'" data-orderid="\'.$lineItem[\'order_id\'].\'" data-user="\'.$user_id.\'" data-variation="\'.$lineItem[\'variation_id\'].\'" href="">Сразиться</button></td></tr>\';// /*\'. esc_url( $order->get_view_order_url() ) .\'*/Кнопка отрабатывает по клику - выхватывает Ajax-ом такие данные как (id участника-заявителя, название заявки, id заявки, ставка-взнос-тариф)\'</td>\';     
        } 
    }         
    echo \'</tbody></table></br>\' ;
    ?>
<div class="results"></div> <!-- здесь будет выводится результат -->
这是我在函数中输入的代码的一部分。插件中的php文件(我也无法显示代码-仅显示负责使用JS的部分):

add_action("wp_ajax_my_ajax_action", "k_ajax_my_ajax_action");// для фронтенда 
add_action("wp_ajax_nopriv_my_ajax_action", "k_ajax_my_ajax_action");// для админки


function k_ajax_my_ajax_action(){
echo \'<div class="clos">\';
echo \'<div class="close" id="close_\'.$_POST[\'orderid\'].\'" onclick="javascript:closePopup(\'.$_POST[\'orderid\'].\');">Закрыть</div></br>\';
//here is some code that can be executed
echo \'</div>\';
echo \'<div class="cl"></div>\';
exit; 

}
和CSS:

    .cl {
        width: 100%;
        height: 100%;
        position: fixed;
        top: 1px;
        left: 1px;
        background: black;
        opacity: 0.8;
        z-index: 1030;
    }

    .clos {
        width: 360px;
        height: auto;
        background: white;
        top: 80px;
        z-index: 1031;
        padding: 1%;
        position: fixed;
        left: 50%;
        margin-left: -180px;
    }
.close{
float:right;
font-size:21px;
font-weight:700;
line-height:1;
color:#000;
text-shadow:0 1px 0 #fff;opacity:.2;
filter:alpha(opacity=20)
}
      .close:hover,.close:focus{
color:#000;
text-decoration:none;
cursor:pointer;
opacity:.5;
filter:alpha(opacity=50)
}
      button.close{
padding:0;
cursor:pointer;
background:0 0;
border:0;-webkit-appearance:none
}
下面是一个活生生的例子:svary.club

相关推荐

在URL中插入“javascript:id(0);”

无论如何,我都不是Wordpress的初学者,但我完全被这个问题所困扰。我尝试了一系列备选方案,但没有任何结果(href=“\\;”,href=“\\35; void”等)。我需要“javascript:void(0);”作为HTML链接中的href属性。将其插入文本编辑器,轻弹到视觉对象,然后返回文本编辑器,使其消失。我已经阅读了一些关于它的信息(回复:esc\\u url),但似乎找不到修复方法。我有没有办法通过函数或脚本在Wordpress的页面上实现这一点?我试图生成的链接是:<a href