Сделайте jQuery, чтобы отменить действие для определенного класса div

0

Я написал jQuery (function) для выполнения действия для некоторого div-класса (A). Когда мы щелкаем гиперссылки в этом классе div, эти ссылки будут открыты в другом div-id (B). Здесь мои проблемы: я хочу отключить функцию для одной ссылки в первом классе div (A).

Например, если в div-классе (A) (для 1 и 2) есть две гиперссылки, когда мы щелкаем по ссылке 1, она должна выполнить jQuery. Когда мы нажимаем ссылку 2, jquery не должен быть выполнен для этой ссылки. ПРИМЕЧАНИЕ. Две ссылки (link1 и link2 оба находятся в одном и том же div-классе (A)).

моя функция jQuery идет как

$('.div-class(A) a').click(function(){
var url = $(this).attr('href');
var height = $('#div-id(B)').height();
var width = $('#div-id(B)').width();
$('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );
return false;
});

Как мне решить эту проблему. Нужно ли добавлять функцию отключения? Очевидно, я не должен использовать.remove() → как полностью удаляет ссылку.

Какие-либо предложения???

3 ответа

2
Лучший ответ

если вы используете .on() для привязки своего события, тогда вы можете отпереть его с помощью .off(), например:

Обновлено, чтобы отражать фактические потребности OPs (я думаю)

$('.div-class(A) a').on('click', function(){
    var url = $(this).attr('href');
    var height = $('#div-id(B)').height();
    var width = $('#div-id(B)').width();

    $('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );

    return false;
});

// This will unbind the click action for a tags inside a div with id #sub-b
$('#sub-b a').off('click');

Следует отметить, что если вы используете делегирование событий, то вы не можете использовать off на внутреннем div таким образом.

рабочая скрипка

см. документацию jQuery

  • 0
    позвольте мне прояснить, что существует главный div-класс (A), в котором у меня есть два подкласса, а именно - div-класс (a) и div-класс (b). теперь запрос должен выполняться для div-класса (a), а не для div-класса (b). ссылки в div-классе (b) должны работать нормально, но ссылки в div-классе (a) должны выполнять действие запроса.
  • 0
    И не спрашивайте меня "почему вы не можете указать только div-класс (a) (подкласс), а не div-класс (A) (основной класс) ????". Это мое требование ..
Показать ещё 9 комментариев
0

Если вы хотите удалить событие после его первого щелчка, вы можете просто отпереть его:

$('.div-class(A) a').click(function(){
    var url = $(this).attr('href');
    var height = $('#div-id(B)').height();
    var width = $('#div-id(B)').width();
    $('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );
    $(this).off("click");
    return false;
});

Для получения дополнительной информации об отключении: http://api.jquery.com/off/

Если вы просто хотите, чтобы определенные ссылки в вашем div были доступны для клика, просто добавьте соответствующий класс и выполните фильтрацию:

$('.div-class(A) a.opensUpDivB').click(function(){
    var url = $(this).attr('href');
    var height = $('#div-id(B)').height();
    var width = $('#div-id(B)').width();
    $('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );
    return false;
});
  • 0
    что открывается UpDivB ????
  • 0
    это класс, который вы даете на ссылку, которая должна открыть div B
Показать ещё 1 комментарий
0

Пытаться

: не переключатель

$('.div-class(A) a:not(disabledLinkSelctor)').click(function(){
var url = $(this).attr('href');
var height = $('#div-id(B)').height();
var width = $('#div-id(B)').width();
$('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );
return false;
});
  • 0
    что здесь отключено LinkSelctor ?? это какой-то раздел div-класса, который я не хочу выполнять действие ???
  • 0
    я тестировал с внутренним div-классом внутри основного div-класса (A). Это не работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню