2013-07-22 8 views
138

साथ चयनकर्ता मैं निम्नलिखित सीएसएस है:पहुँच सीएसएस ": के बाद" jQuery

.pageMenu .active::after { 
    content: ''; 
    margin-top: -6px; 
    display: inline-block; 
    width: 0px; 
    height: 0px; 
    border-top: 14px solid white; 
    border-left: 14px solid transparent; 
    border-bottom: 14px solid white; 
    position: absolute; 
    right: 0; 
} 

मैं ऊपर, छोड़ दिया की सीमा-चौड़ाई बदलना चाहते हैं, और नीचे सीमा jQuery का उपयोग कर। इस तत्व तक पहुंचने के लिए मैं किस चयनकर्ता का उपयोग करता हूं? मैंने निम्नलिखित की कोशिश की लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है।

$('.pageMenu .active:after').css(
     { 
      'border-top-width': '22px', 
      'border-left-width': '22px', 
      'border-right-width': '22px' 
     } 
    ) 
+1

इस उत्तर को देखें http://stackoverflow.com/questions/5041494/manipulating-css-pseudo-elements-using-jquery-eg-before-and-after – BigBadOwl

+2

आप JQuery के माध्यम से नहीं कर सकते, लेकिन आप जावास्क्रिप (सीएसएस नियमों तक पहुंचने के साथ) http://stackoverflow.com/questions/15087736/change-the-divafter-border-right-color-by-jquery/15088868#15088868 –

+0

@AliBassam जो आपने अभी कहा है उसे कोई समझ नहीं आता है। jQuery आईएस जावास्क्रिप्ट (असल में, इसके लिए एक सम्मेलन पुस्तकालय है, लेकिन मुझे उम्मीद है कि आपको बिंदु मिल जाएगा)। – Kroltan

उत्तर

196

आप :after में हेरफेर नहीं कर सकते, क्योंकि यह तकनीकी रूप से डोम का हिस्सा नहीं है और इसलिए किसी भी जावास्क्रिप्ट से दुर्गम है। लेकिन आप निर्दिष्ट कर सकते हैं एक नया वर्ग :after निर्दिष्ट के साथ।

सीएसएस:

.pageMenu .active.changed:after { 
/* this selector is more specific, so it takes precedence over the other :after */ 
    border-top-width: 22px; 
    border-left-width: 22px; 
    border-right-width: 22px; 
} 

जे एस:

$('.pageMenu .active').toggleClass('changed'); 

अद्यतन:करने के लिए असंभव यह है, जबकि सीधे:after सामग्री को संशोधित, वहाँ पढ़ने के लिए तरीके और/या ओवरराइड हैं यह जावास्क्रिप्ट का उपयोग कर रहा है। तकनीकों की एक व्यापक सूची के लिए "Manipulating CSS pseudo-elements using jQuery (e.g. :before and :after)" देखें।

+0

इससे मुझे मदद मिली , धन्यवाद! –

+0

जेएस में छद्म तत्वों को संपादित करने के लिए तीन विकल्पों के साथ एक महान लेख है। https://pankajparashar.com/posts/modify-pseudo-elements-css/ –

40

आप के लिए शैली जोड़ सकते हैं: के बाद एक HTML कोड।
उदाहरण के लिए:

var value = 22; 
body.append('<style>.wrapper:after{border-top-width: ' + value + 'px;}</style>'); 
+1

यह गतिशील गुणों के लिए उपयोगी है। धन्यवाद! –

+4

jQuery में: '$ (" ") .appendTo (" head ")' – SuN

7

आप jQuery में निर्मित after() खाली मान का उपयोग करते हैं यह एक गतिशील वस्तु है कि आपके :after CSS चयनकर्ता से मेल करेगा।

$('.active').after().click(function() { 
    alert('clickable!'); 
}); 

jQuery documentation देखें।

+8

यह काम नहीं करता है, अच्छा विचार हालांकि – Pixelomo

+1

यह फ़ायरफ़ॉक्स, क्रोम और सफारी में मेरे लिए काम करता है – sagesolutions

+2

सीएसएस के लिए काम नहीं करता है लेकिन मुझे क्लिक इवेंट को लक्षित करने देता है: टैग –

संबंधित मुद्दे