Xin giúp đỡ về lệnh Jquery

Các bạn giúp mình trường hợp này với ạ.

Mình có list danh sách các item, mỗi item lại có các list danh sách item con tương ứng. Mình muốn khi click vào 1 item bất kỳ, nếu item đó thỏa mãn bên trong nó có chứa danh sách item con thì mới cho hiện lệnh alert() còn không thì sẽ không được hiện. Mình có viết code Jquery bên dưới nhưng nó chạy chưa theo ý muốn.

Các bạn xem ở link này nhé:

Do sự kiện click đang bắt từ parent xuống đến sub-item.
VD: khi click Item1-1 thì mặc định Item1 cũng được click

Sửa lại: đưa hết text vào <span></span> và gọi sự kiện click với các span.
$(‘span:parent:has(.sub_menu)’)

1 Like

Cám ơn bạn - cách của bạn rất hay ạ.

Tuy nhiên ở đây mình mới chỉ demo cho mọi người xem nên chỉ đưa tạm 1 ít dữ liệu chứ thực tế dữ liệu của mình nhiều hơn vậy. Nếu với mỗi cặp thẻ <li> lại phải lồng thêm 1 cặp thẻ <span> như vậy thì e là không tiện lắm.

Mong các bạn suy nghĩ giúp mình xem liệu có cách nào khả quan hơn không ạ !

$('li:has(".sub__menu")').click(function(e){
   e.stopPropagation();
  target = $(e.target);
   if(target.children().length > 0){
       console.log(target.children().text())
   }
});

Mình đabg ở cty nên k giải thích chi tiết dc. bạn tự tìm hiểu nha

1 Like

Nó chạy ngon rồi. Tuyệt quá !!! Mình sẽ đọc và tìm hiểu Code của bạn.
Cảm ơn bạn nhiều ạ. :heart_eyes: :heart_eyes:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?