0

私は2つのクラスでjqueryセレクターオプションを使用しているasp.netでディスカッションパネルを開発しています

 $("#plblDisAgreeProblem", "plblDisAgreeComment").click(function(){
var str = {
            problemID: $("#problemID").val(),
            empID : $("#empID").val(),
            commentID : -1
        }
        $.ajax({

            type: "GET",
            url: "<%= Url.Action("GetStatus", "Discussion") %>",
            data: str,
            error: function(msg){
                    alert("error2" + msg);
                },
                success: function (msg) {

                  var out = msg.split("<br/>");
                  if (out[1] == "DisAgree: True")
                  {
                        alert("You are already disagree to this problem.");
                  }
                  else
                  {




                }
            });


        })

divのクラスが「plblDisAgreeProblem」の場合、JSonのcommentIDは-1である必要があり、divのクラスが「plblDisAgreeComment」の場合、JSonのcommentIDはthis.idである必要がありますが、どうすればこれを行うことができますか?

私を助けてください

4

4 に答える 4

1

この is() 関数を使用します。

commentID : $(this).is(".plblDisAgreeProblem") ? -1 : this.id

私はこれがうまくいくはずだと信じています(私が今いるところからテストすることはできません)。

于 2012-04-16T17:41:15.747 に答える
1

まず、クラス セレクターの欠落しているドットを修正します。以下を参照してください。

$("#plblDisAgreeProblem", ".plblDisAgreeComment").click(function(){

次に、 hasClass 関数を使用して、クリックされた要素が指定されたクラスからのものであるかどうかを確認できます。以下を参照してください。

    var str = {
        problemID: $("#problemID").val(),
        empID : $("#empID").val(),
        commentID : -1
    }

   if ($(this).hasClass('plblDisAgreeComment') {
       str.commentID = this.id;
   } 

else if of ('plblDisAgreeProblem')はデフォルトで -1 に設定されているため、必要ありません。

于 2012-04-16T17:41:33.450 に答える
0
$("#plblDisAgreeProblem", ".plblDisAgreeComment").click(function(e) {
  ....
  ....

  if(this.className == 'plblDisAgreeComment') {
     str.commentID = this.id;
  } else {
   // do other
  }
  ......
  ......
});

クラス セレクターのドット (.) がありません

于 2012-04-16T17:36:27.070 に答える
0

これでうまくいくはずです:(いくつかの構文エラーも修正されました)

$("#plblDisAgreeProblem", ".plblDisAgreeComment").click(function() {
    var str = {
        problemID: $("#problemID").val(),
        empID: $("#empID").val(),
        commentID: $(this).hasClass('plblDisAgreeComment') ? this.id : -1
    };
    $.ajax({
        type: "GET",
        url: "<%= Url.Action("GetStatus", "Discussion") %>",
        data: str,
        error: function(msg) {
            alert("error2" + msg);
        },
        success: function(msg) {
            var out = msg.split("<br/>");
            if (out[1] == "DisAgree: True") {
                alert("You are already disagree to this problem.");
            } else {}
        });
    });
});

速度の参考:

jQuery .hasClass() と .is()

于 2012-04-16T19:18:18.017 に答える