Моя функция не будет вызывать JQuery
У меня есть сетка кендо asp.net и внутри у меня есть элемент с классом. Я хочу заменить этот класс другим, нажав на ссылку, которую я разместил справа.
Так что я использовал 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());
}
}
[РЕДАКТИРОВАТЬ]
Я думаю, что это может быть полезно знать. Сначала я сделал некоторые изменения в своем коде, и вот некоторые пояснения.
У меня есть элемент внутри сетки с классом, и я хочу, чтобы этот класс изменился на другой, когда я нажму на свою ссылку.
4 ответа
Я думаю, что проблема в том, что вы пытаетесь использовать метод onclick, который не работает в jQuery.
Попробуйте использовать.on('click', function(index) ...
.onclick не является методом jquery, попробуйте вместо этого.click, вот так:
function changetoOK() {
grid.tbody.find("td").click(function (index) {
if ($("a").hasClass('changeToOk'))
{
$(this).removeClass('changeToOk');
$(this).addClass('customClassOK');
}
});
}
Это свяжет событие click с td
элементы, хотя имейте в виду, что все функции, которые вы предоставили, это найти все a
элементы и посмотреть, если какой-либо из них имеет класс changeToOk
, Единственная причина, по которой я упоминаю это, заключается в том, что вы даете функции click индекс, который затем никогда не используется.
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');
}
});
}
Так что для всех, кто хочет сделать то же самое, что и я, наконец, узнайте как.
Все, что вам нужно сделать, это:
$(document).on('click', '.changeToOK', function () {
$(this).parent().parent().find('.verifyCell').removeClass('customClassVerif').addClass('customClassOK');
})
Я добавил второй класс к своему первому элементу, и он работает!
Спасибо всем, кто пытался мне помочь.