0

何時間も検索した後、これに対する解決策を見つけることができないようです:-(

私は無駄にしようとしました:

jQuery('#someGlobalNav').delegate('*','keyup', function(){
   if(!(jQuery('#itemsForSale').find(jQuery(this))){// do something}

jQuery("#itemsForSale, #itemsForSale > * ").focusout(function(){}

:not と :contains を使用してみました。

基本的に、私はリンクのグループを持っています。これを以下で使用します。

<div id="someGlobalNav">
<ul id='siteNavigation'>
<li id="itemsForSale">
   <div id="items">
      <ul id='itemNav'>
         <li>
             <div id="menu1">
                <ul>
                   <li><a href="link">menu 1 item 1</a></li>
                   <li><a href="link">menu 1 item 2</a></li>
                </ul>
             </div>
         </li>
         <li>
              <div id="menu2">
                <ul>
                   <li><a href="link">menu 2 item 1</a></li>
                   <li><a href="link">menu 2 item 2</a></li>
                </ul>
             </div>
         </li>
      </ul>
   </div>
</li>
<li><a href="link">Link that Might exist</a></li>
<li><a href="link">AnotherLink that Might exist</a></li>
</ul>
<div><a href="somelink">Arbitrary link</a></div>
</div>

すべてが正常にキャプチャされます..唯一の問題は、「itemsForSale」またはその子ではない要素に対してのみ作用したいということです。したがって、ユーザーがリンクを介してキーアップすると、itemsForSale 以外の何かでキーアップするまでは問題ありません --

:not を使用することを考えましたが、ナビゲーションは動的であるため、セレクターはわかりません。私は他のあらゆる種類の運を試しました。

何か案は

4

1 に答える 1

1

問題に対する単純化されたソリューションは次のようになります。

$('a:not(#itemsForSale *)');

jsbin のデモ: http://jsbin.com/idijos/1/edit

于 2013-01-26T03:35:41.997 に答える