2016-04-07 8 views
1

Es ist ganz einfach zu tun, und ich habe es in der Vergangenheit viele Male getan, aber ich weiß nicht, warum es jetzt nicht funktioniert.Kann nicht erkennen, welche li schwebte

HTML

<div class="box" style="height: 50%;"> 
    <input type="search" class="input searchBox" placeholder="Search for items"> 
    <ul class="SearchResults clearfix"></ul> 
</div> 

JS:

// SearchBox implementation 
var searchBox = $(".searchBox").bind('keyup ', function() { 

    var length = searchBox.val().length; 

    if (searchBox.val().length > 0) { 
     $.ajax({ 
      url: "/Invoice/GetProducts", 
      type: "POST", 
      data: { searchquery: searchBox.val() }, 
      success: function (result) { 
       $(".SearchResults").append(result); 
      } 

     }); 
    } else { 
     $(".SearchResults").empty(); 
    } 

    //$(".SearchResults").text(searchBox.val().length); 
}); 

und dann diese einfache Schweben Code

$(".SearchResults li").hover(function() {    
    alert(); 
}); 

ich sicher gemacht haben, dass dieses Skript ausgeführt wird. li werden hinzugefügt und alles, aber was auch immer ich mache, kann ich nicht feststellen, schwebe, wie auch immer es Alarm gibt, wenn ich den Code zum Schweben ul ändern und nicht das li.

+1

'$ ("Search li.") Schweben (function() { console.log (this); });.' ' – Rayon

+0

this' innerhalb des Handlers zum schwebte beziehen' li 'Element –

+1

Sie sollten Ereignis an statischen UL-Container delegieren, um Ereignis für dynamische Elemente zu behandeln –

Antwort

3

Sie sollten event delegation für dynamisch generierte Element verwenden und auch this im Ereignis verwenden, um das Element zu erhalten, das schwebt.

$(".SearchResults").on('mouseenter', 'li', function() { 
    alert(this); 
}) 
+0

Danke, es funktionierte. Also, wenn ich Elemente dynamisch hinzufüge, muss ich Ereignisdelegierung verwenden? – Waleed

+0

Ja. Das ist es. @Waleed – Azim

+0

var li = $ (this + ".name"). Text(); gibt mir einen Fehler. .name eine Spanne innerhalb jedes li ist – Waleed

Verwandte Themen