2012-12-11 2 views
0

Я стараюсь понять синтаксис .on("click", но просто не могу его получить.add on click to jquery function

Если у меня есть этот код:

<script> 
    $(function() { 
     $(".somediv").not(":contains('$someparam')").addClass("hidden"); 
    }); 
</script> 

Что я должен сделать для того, чтобы отобразить $someparam в виде ссылки на страницы, и нажав на эту ссылку активирует эту JQuery, чтобы скрыть дивы?

Заранее спасибо.

+1

Что такое '$ someparam'? – adeneo

+0

Вы также должны опубликовать HTML-код –

+0

Обратите внимание, что селектор ': contains' работает только для текста –

ответ

0

как я понял, этот вопрос заключается в том, чтобы добавить скрытый класс css в класс somediv css, который содержит определенный $ someparam при щелчке.

вы можете найти его в скрипкой:

http://jsfiddle.net/DwAAQ/

вот css я использовал:

.somediv{ 
     width:100%; 
     height:20px; 
     margin:0 0 10px 0; 
     border-bottom:solid 1px red; 
     } 
    .hidden{ 
     display:none; 
     } 

вот html я использовал:

<div class='somediv'>1 is</div> 
    <div class='somediv'>2 not</div> 
    <div class='somediv'>3 not</div> 
    <div class='somediv'>4 is</div> 

    <button class='someclass'>someClass</button> 

это jQuery i used with on click обработчик:

$(function(){ 
     var $someparam = 'is'; 

     $(document).on('click', '.someclass', function() { 
      $(".somediv").not(":contains('" + $someparam + "')").addClass("hidden"); 
     }); 
    }); 

Что это делает, в первую очередь имеет в этом случае я взял 'is', содержащийся в дивы в variable which contains a specific string. Поэтому, когда документ готов, тогда у нас есть button here to click which executes the line in the jquery, чтобы добавить .hidden css class

+0

Ничего себе, это удивительно, что вызвало довольно дискуссию. Спасибо, ребята, за ваш вклад и специально для объяснений. Код, который я вставил, - это рабочий макрос jquery, который я использую, чтобы скрыть div, если он не содержит определенных div. –

+0

, если это вам помогло, вы можете принять его как ответ на свой вопрос, чтобы другие могли видеть, что это вам помогло. – Jai

+0

Я обязательно сделаю, я в процессе тестирования. –

0

В основном, используется для чего-то совершенно другого. Вам нужно только событие click мыши:

.click(handler(eventObject)) 

Таким образом, для вашего конкретного примера будет следующим:

$('.someclass').click(function() { 
    $(".somediv").not(":contains('$someparam')").addClass("hidden"); 
}); 

(Кстати, вы можете проверить «$ someparam» часть - что на самом деле не имеет смысла быть в кавычках).

+0

Полностью отличается? Конечно, '.on' может использоваться для делегирования делегирования, если передан параметр selector, однако' $(). Click (handler) '- не что иное, как сокращение для' $(). On ('click', handler) '. –