2013-04-05 2 views
0

업데이트 : 저는 단지 내 질문을 검토하기 때문에 이해가 가지 않습니다. 피곤할 때 여기서 질문하지 말아야합니다. 이제 다시 작성되었으며 가능한 솔루션재 바인드 jQuery를 클릭하십시오. AJAX 호출

이 나는 ​​일이 원하는 것입니다 :

  1. 사용자가 AJAX 호출이 이루어집니다 클래스 filter_products으로 체크 박스를 클릭합니다.
  2. 업데이트 된 제품 목록이 반환됩니다.
  3. 업데이트 된 제품 목록은 product_list 내가 hoverintent 이벤트가 다시 결합하는

코드가 원하는 업데이트되었습니다 product_list 후 클래스와 UL의 내용을 대체합니다 :

<div id="sidebar"> 
    <input class="filter_products" type="checkbox" name="product_options[1]" value="1"> 
    <input class="filter_products" type="checkbox" name="product_options[2]" value="2"> 
</div> 

<div id="main"> 
    <ul id="product_list"> 
     <li class="product"> 
      Product name 1 
     </li> 
     <li class="product"> 
      Product name 2 
     </li> 
    <ul> 
</div> 

<script> 
    // Filter products 
    $('.filter_products').on('click', function() { 
     var inputs = $("input:checked"); 
     $.post('/filter_products/' + $('#cat_id').data('cat-id'), inputs.serialize(), function(data) { 
      $('#product_list').html(data); 
     }); 
    }); 

    // Hover product is now wrapped in a function 
    $(".product").hoverIntent({over: getAttributtes, out: hideAttributtes}); 

    function getAttributtes() { 
     // Do something 
    } 

    function hideAttributtes() { 
     // Do something 
    } 
</script> 

이것은 아마도 해결책 :

// Filter products 
$('.filter_products').on('click', function() { 
    var inputs = $("input:checked"); 
    $.post('/filter_products/' + $('#cat_id').data('cat-id'), inputs.serialize(), function(data) { 
     $('#product_list').html(data); 

     // Re-initialize hoverintent 
     hoverAttributtes(); 
    }); 
}); 

// Hover product 
function hoverAttributtes() { 
    $(".product").hoverIntent({over: getAttributtes, out: hideAttributtes}); 
} 

function getAttributtes() { 
    // Do something 
} 

function hideAttributtes() { 
    // Do something 
} 

// Initialize hoverintent 
hoverAttributtes(); 
+1

어떤 클릭 이벤트 핸들러를 리 바인드 하시겠습니까? 너 한테 아무것도 묶지 않을거야. 전체 문제를 더 명확하게 설명해 주시겠습니까? –

+0

... 클릭 이벤트를 다시 바인딩하려는 부분을 놓쳤습니까? –

+0

A. 무엇을하려고합니까? B. 왜 그 일을하려고합니까? C. 어떤 일이 일어나기를 기대하지 않고 있습니다. D. 당신이 일하기를 기대하지 않는다는 것이 무슨 일입니까? – couzzi

답변

0

ick ajax 호출 후 ajax 호출로 업데이트 될 div 외부에이 코드를 넣으십시오. 아약스 업데이트가 아닌 메인 페이지를 의미합니다. 클릭하여이 스크립트를 사용하십시오.

$(document).on('click','.filter_products', function() { 
    var inputs = $("input:checked"); 
    $.post('/filter_products/' + $('#cat_id').data('cat-id'), inputs.serialize(), function(data) { 
     $('#product_list').html(data); 
    }); 
});