लगातार सूची गिनती और व्यवहार को संशोधित करने का jQuery तरीका क्या है? - jquery

तो चलिए कहें कि आईडी के साथ टैग किए गए मेरे डोम में एक तत्व है hide_me

कब $("ul").length 0 है, मैं चाहता हूँ hide_me छिपाने के लिए, और जब यह उससे अधिक है, तो मैं इसे उपलब्ध होना चाहता हूं।

li तत्वों को गतिशील रूप से डीओएम से जोड़ा और हटा दिया जाता है।

मैं इस तरह कुछ कैसे कार्यान्वित कर सकता हूं?

उत्तर:

जवाब के लिए 0 № 1

अपने कोड को देखे बिना इसे बहुत सुझाव देना मुश्किल है, लेकिन एक समाधान यह है कि आप जो भी फ़ंक्शन गतिशील रूप से जोड़ / निकालने के लिए उपयोग कर रहे हैं, उस पर कॉलबैक को तारित करना होगा li"रों

इस कोड पर विचार करें:

var dynamicallyChangeList = {

remove: function($li)
{
//where $li is a prewrapped jquery object
$li.remove();
this.checkHide();
},
add: function($ul, li)
{
//where $ul is a prewrapped jquery object, li is some html e.g. ("<li>Some Text</li>")
$ul.append(li);
this.checkHide();
},
checkHide: function()
{
var hidden = $("ul").css("display") === "none";
if(hidden)
{
if($("ul > li").length > 0)
{
$("ul").show();
}
} else {

if($("ul > li").length < 1)
{
$("ul").hide();
}
}
}
};

var $li = $("#myLi");

//implement

dynamicallyChangeList.remove($li);

ऐसा करने के लिए अन्य, तेज और क्लीनर तरीके हैं, मैं बस एक तरफ सुझाव दे रहा हूं।

एक क्लीनर विकल्प (जो खुद को डीकॉप्लिंग करने के लिए उधार देता है) एक क्लाइंट साइड मैसेजिंग समाधान है जैसे उप / पब या मध्यस्थ।

जैसा कि आपने अपनी टिप्पणियों में सुझाव दिया था, आप इसका उपयोग कर सकते हैं .on() पसंद :

$( "#foo" ).on( "custom", function( event, param1, param2 )
{
alert(param1 + "n" + param2 );
});
$( "#foo").trigger( "custom", ["Custom", "Event" ] );

लेकिन आप अभी भी लपेटना होगा trigger() एक उपरोक्त की तरह एक अभिव्यक्ति में कॉल करें ताकि आपको पता चले कि इसे कब कॉल करना है।

अन्यथा, कुछ शानदार जेएस मूल प्लगइन्स जैसे हैं postal.js और कुछ jQuery जिन्हें मैंने कोशिश नहीं की है Publish/Subscribe


संबंधित सवाल
सबसे लोकप्रिय