प्रोटोटाइप के साथ घटना ट्रिगर

वोट
60

किसी के रूप में आप jQuery के ट्रिगर समारोह के साथ कर सकते हैं, प्रोटोटाइप में एक घटना को गति प्रदान करने के लिए एक विधि का पता है?

मैं विधि का पालन का उपयोग कर एक घटना श्रोता बाध्य कर दिया है, लेकिन मैं यह भी घटना प्रोग्राम के सक्रिय करने के लिए करना चाहते हैं।

अग्रिम में धन्यवाद

20/01/2009 को 08:54
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
84

event.simulate.js अपनी आवश्यकताओं फिट बैठता है।

मैं कई बार उपयोग किया है और यह एक आकर्षण की तरह काम करता है। यह आप के लिए अनुमति देता मैन्युअल देशी ईवेंट ट्रिगर कर इस तरह के क्लिक के रूप में, या तो की तरह मंडराना:

$('foo').simulate('click');

इस बारे में महान बात यह है कि सभी संलग्न ईवेंट हैंडलर्स अभी भी निष्पादित किया जाएगा, जैसे कि आपने तत्व अपने आप को क्लिक किया है होता है।

के लिए कस्टम घटनाओं आप मानक प्रोटोटाइप विधि का उपयोग कर सकते हैं Event.fire()

20/01/2009 को 09:12
का स्रोत उपयोगकर्ता

वोट
35

मुझे नहीं लगता कि प्रोटोटाइप करने के लिए बनाया है, लेकिन आप इस (परीक्षण नहीं लेकिन कम से कम सही दिशा में मिलना चाहिए) का उपयोग कर सकते हैं:

Element.prototype.triggerEvent = function(eventName)
{
    if (document.createEvent)
    {
        var evt = document.createEvent('HTMLEvents');
        evt.initEvent(eventName, true, true);

        return this.dispatchEvent(evt);
    }

    if (this.fireEvent)
        return this.fireEvent('on' + eventName);
}

$('foo').triggerEvent('mouseover');
20/01/2009 को 09:15
का स्रोत उपयोगकर्ता

वोट
5

मैं इस पोस्ट उपयोगी पाया ... http://jehiah.cz/archive/firing-javascript-events-properly

यह दोनों Firefox और IE में घटनाओं आग के लिए एक रास्ता शामिल किया गया।

function fireEvent(element,event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}
20/04/2010 को 14:45
का स्रोत उपयोगकर्ता

वोट
3

यहाँ जवाब "सामान्य" की घटनाओं के लिए सही हैं, कि किसी घटना के समय उपयोगकर्ता एजेंट द्वारा परिभाषित कर रहे है, लेकिन कस्टम घटनाओं के लिए आप के प्रोटोटाइप के "आग" विधि का उपयोग करना चाहिए। जैसे

$('something').observe('my:custom', function() { alert('Custom'); });
.
.
$('something').fire('my:custom'); // This will cause the alert to display
25/06/2011 को 21:24
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more