单击按钮时通过JavaScript/jQuery在单击时调用函数

单击按钮时通过JavaScript/jQuery在单击时调用函数,javascript,jquery,html,Javascript,Jquery,Html,以下是我的JavaScript: function privacy(current) { var $this = $(current), $scope = $this.closest('.uk-button-group'), value = $this.val(); $.ajax({ type: 'post', url: '/privacy.php', data: {key: value }, s

以下是我的JavaScript:

function privacy(current)
{
    var $this = $(current), 
    $scope = $this.closest('.uk-button-group'), 
    value = $this.val();
    $.ajax({
        type: 'post',
        url: '/privacy.php',
        data: {key: value },
        success: function () {
        }
    });
}
$(function() {
    $("#privacy1, #privacy2, #privacy3").click(function() {
        privacy($this);
        alert('A button has been clicked!');
    });
});
这是我的HTML:

<div class="uk-button-group">
    <button class="uk-button" id="privacy1" value="1">Public</button>
    <button class="uk-button" id="privacy2" value="2">Protected</button>
    <button class="uk-button" id="privacy3" value="3">Private</button>
</div>    

平民的
受保护的
私有的

当我点击其中一个按钮时,它应该调用隐私功能并提醒我某个按钮已被点击,但它没有。有人能帮我看看我的代码有什么问题吗?非常感谢

您没有任何标识符
$this
,您可能需要使用
$(this)
更改
$this
,或者只需
this
来传递事件源对象

privacy(this);

替换此项:-

privacy(this);
试试这里:

这是你的

这是经过改进的代码

function privacy(current)
{
    var btn = $(current), 
    scope = $(btn).closest('.uk-button-group'), 
    value = $(btn).val();
    $.ajax({
        type: 'post',
        url: '/privacy.php',
        data: {key: value },
        success: function () {
        }
    });
}
$(function() {
    $("#privacy1, #privacy2, #privacy3").click(function() {
        privacy(this);
        alert('A button has been clicked!');
    });
});
命名变量时请避免保留关键字-


注意语法,可以随意使用浏览器控制台。

打开控制台会显示错误所在…提示您可以使用公共类绑定以缩短代码,例如:
$('.uk按钮')。单击
隐私($this)$这是未定义的,是时候开始使用你的控制台了…对不起,我对javascript有点陌生,我正在记事本中编写代码,你能告诉我控制台在哪里吗?Thanks@SieuPhan控制台在浏览器中,按F12打开itOr just
,因为它位于函数中的jQuery对象中谢谢!我刚刚意识到是
this
而不是
$this
没有定义。干杯
$(function() {
    $("#privacy1, #privacy2, #privacy3").click(function() {
        privacy($(this));
        alert('A button has been clicked!');
    });
});
function privacy(current)
{
    var btn = $(current), 
    scope = $(btn).closest('.uk-button-group'), 
    value = $(btn).val();
    $.ajax({
        type: 'post',
        url: '/privacy.php',
        data: {key: value },
        success: function () {
        }
    });
}
$(function() {
    $("#privacy1, #privacy2, #privacy3").click(function() {
        privacy(this);
        alert('A button has been clicked!');
    });
});