Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery数据属性不工作_Javascript_Jquery - Fatal编程技术网

Javascript Jquery数据属性不工作

Javascript Jquery数据属性不工作,javascript,jquery,Javascript,Jquery,我知道它是重复的,但请看下面 我的锚链 <a onclick="updateStatus(this)" data-pid="@job.Id" data-act="@action.Activity" data-sts="@action.StatusToSet" class="btn btn-xs btn-circle @action.CssClass @action.BackgroundColor" href="#">

我知道它是重复的,但请看下面

我的锚链

 <a onclick="updateStatus(this)" data-pid="@job.Id" data-act="@action.Activity" data-sts="@action.StatusToSet" class="btn btn-xs btn-circle @action.CssClass @action.BackgroundColor" href="#">
                                            @action.Text
                                        </a>

但我对以上所有内容都没有定义。我看不出有什么问题,有人能指出吗。我的jquery版本是1.11。

在调用
updateStatus()时,应该将
作为参数传递


将元素传递给函数

函数更新状态(elm){
变量preAssignedJobId=$(elm).data(“pid”);
var活动=$(elm).data(“act”);
var statusToSet=$(elm).data(“sts”);
$(elm.text(“hhH”);
}

由于您已经在使用jQuery,请从HTML代码中删除onclick,并为其提供jQuery事件处理程序

HTML


您只需将
单击
事件委托给
锚定
并提取所需信息即可

$('a').on("click",function(e)
{
    //e.preventDefault();
    var preAssignedJobId = $(this).data("pid");
    alert(preAssignedJobId);
    var activity = $(this).data("act");
    var statusToSet = $(this).data("sts");

});

示例:

这并不是您所认为的那样。虽然这与您的问题无关,但我想指出,
.data(“pid”)
可能会将您的id转换为整数。这可能是可取的,也可能不是可取的。使用
.attr(“数据pid”)
返回一个字符串,您可以更可预测地处理该字符串。
<a onclick="updateStatus(this)" data-pid="@job.Id" data-act="@action.Activity" data-sts="@action.StatusToSet" class="btn btn-xs btn-circle @action.CssClass @action.BackgroundColor" href="#">
                                            @action.Text
                                        </a>
function updateStatus(param) {
    //  Then use param
    var preAssignedJobId = $(param).data("pid");
    var activity = $(param).data("act");
    var statusToSet = $(param).data("sts");
}
 <a id="anch1" data-pid="@job.Id" data-act="@action.Activity" data-sts="@action.StatusToSet" class="btn btn-xs btn-circle @action.CssClass @action.BackgroundColor" href="#">
                                            @action.Text
                                        </a>
$(function(){
    $("#anch1").click(function(){
      var $this = $(this);
      var preAssignedJobId = $this.data("pid");
      var activity = $this.data("act");
      var statusToSet = $this.data("sts");
    });
});
$('a').on("click",function(e)
{
    //e.preventDefault();
    var preAssignedJobId = $(this).data("pid");
    alert(preAssignedJobId);
    var activity = $(this).data("act");
    var statusToSet = $(this).data("sts");

});