2016-10-24 10 views
0

私はasp.net剣道グリッドを持っていて、私はクラスの要素を持っています。このクラスを別のクラスに置き換えるには、右側にあるリンクをクリックします。私の関数はonclick jqueryをトリガーしません

私はjqueryを使用していましたが、動作していないようです。また、Chromeのコンソールの内部でエラーが発生しません。私は警報を入れようとしましたが、それは誘発していません。

誰かがここに助けることができる場合は、私のjqueryのある

function changetoOK() { 
    grid.tbody.find("td").onclick(function (index) { 
     if ($("a").hasClass('changeToOk')) 
     { 
      $(this).removeClass('customClassVerif'); 
      $(this).addClass('customClassOK'); 
     }    
    }); 
} 

も私は、グリッドでこれを持っているので、私のグリッドの内側にそれを置くためにHTMLヘルパーとの偽のリンクを作成するために追加します。

columns.Template(@<text></text>).ClientTemplate(@Html.EmptyLink("Passer à OK").ToHtmlString()); 
クラス

この

public static class MyHtmlExtensions 
{ 
    public static MvcHtmlString EmptyLink(this HtmlHelper helper, string linkText) 
    { 
     var tag = new TagBuilder("a"); 
     tag.MergeAttribute("class", "changeToOK"); 
     tag.MergeAttribute("href", "javascript:void(0);"); 
     tag.SetInnerText(linkText); 
     return MvcHtmlString.Create(tag.ToString()); 
    } 
} 

[EDIT]

私はそれが知っているといいと思います。私は最初にコード内でいくつかの変更を加えましたが、ここではいくつかの説明があります。

私はクラスでグリッド内の要素を持っています。リンクをクリックするとそのクラスを別のクラスに変更したいと思います。

+3

'grid.tbody.find(" td ")。onclick'はjQueryではありません – epascarello

+0

上記のコードの' grid'や 'tbody'はjQueryオブジェクトではありませんか? jQueryメソッド(この場合は '.find()')は、jQueryオブジェクトに対してのみ呼び出すことができます。さらに、 '$(" a ")'はドキュメント内のすべてのアンカー要素のコレクションを返しますが、あなたが推測する特定のものが必要です。 – Flyer53

答えて

0

私はjQueryで動作しない 'onclick'メソッドを使用しようとしているので問題があると思います。

てみ使用.on( 'クリック'、機能(インデックス)...

0

.onclickはそうのように、代わりに.clickしてみてください、jqueryの方法ではありません。

function changetoOK() { 
    grid.tbody.find("td").click(function (index) { 
     if ($("a").hasClass('changeToOk')) 
     { 
      $(this).removeClass('changeToOk'); 
      $(this).addClass('customClassOK'); 
     }    
    }); 
} 

この意志td要素にclickイベントをバインドします。ただし、提供しているすべての機能はすべてa要素を見つけて、いずれかにクラスchangeToOkがあるかどうかを確認する必要があります。クリック機能は使用されないインデックスです。

+0

ええ、私は何かを逃したと思います。私が実際に欲しいのは、これは:グリッドのtd内のa要素をクリックすると、グリッドの他のtd要素がクラスcustomClassOerをクラスを取得したいと思っています(私の投稿で編集しました) –

+1

それでは、グリッドのtd要素内にあるa要素をクリックして、別のtdからcustomClassVerifを削除し、そのクラスをcustomClassOkに置き換えたいと言っていますか? – DibsyJr

+0

はい、これはまさに私が欲しいものです、別のtdもグリッドの中にあります –

0
This will work as expected : 

function changetoOK() { 
    grid.tbody.find("td").on('click', function (event) { 
     if ($("a").hasClass('changeToOk')) 
     { 
      $(this).removeClass('changeToOk'); 
      $(this).addClass('customClassOK'); 
     }    
    }); 
} 
+0

それはやっていることさえしても機能しません。しかし、私は私のポストで何をする必要があるかについての少しの変更を加えました.DibsyJrの回答 –

+0

上記のコードの 'grid'や' tbody'はjQueryオブジェクトではありませんか? jQueryメソッド(この場合は '.find()')は、jQueryオブジェクトに対してのみ呼び出すことができます。 – Flyer53

0

だから、私と同じことをしたいと思っている皆のために、最終的にどのように見つけ出すか。

あなたがしなければならないのはこれです:私は私の最初の要素を第二のクラスを追加し、それが動作

$(document).on('click', '.changeToOK', function() { 
    $(this).parent().parent().find('.verifyCell').removeClass('customClassVerif').addClass('customClassOK'); 
}) 

私を助けようとした皆様に感謝します。

関連する問題