jQuery में BindAsEventListener बराबर?

वोट
4

मैं कुछ jQuery का उपयोग कर तत्व के लिए क्लिक करें घटना बाध्य करने के लिए कोशिश कर रहा हूँ। प्रोटोटाइप का उपयोग करते हुए मैं जानता हूँ कि मैं इस का उपयोग कर सकते BindAsEventListener()

उदाहरण:

var myObject = {

init: function(txtOneId, txtTwoId, lblResultId, ancAddId) {
    this.txtOneId = txtOneId;
    this.txtTwoId = txtTwoId;
    this.lblResultId = lblResultId;
    this.ancAddId = ancAddId;


    var addListener = this.addResult.bindAsEventListener(this);

    Event.observe(this.txtOneId, 'keyup', addListener);
    Event.observe(this.txtTwoId, 'keyup', addListener);
},

addResult: function() {

    var valueOne = $(this.txtOneId).value;
    var valueTwo = $(this.txtTwoId).value;

    if (isNaN(valueOne) || valueOne == )
        valueOne = 0;
    else
        valueOne = parseInt(valueOne);

    if (isNaN(valueTwo) || valueTwo == )
        valueTwo = 0;
    else
        valueTwo = parseInt(valueTwo);


    var result = valueOne + valueTwo;

    $(this.lblResultId).innerHTML = result;

    return false;
}};
14/04/2009 को 17:47
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


5 जवाब

वोट
0

(एफ एन) पर क्लिक करें :

$("#someElement").click( function(event) {
     alert("Hi you clicked me!");
});

या आप एक नामित समारोह के रूप में "हैंडलर" परिभाषित करना चाहते हैं:

function someElementClicked(event) {
     alert("Hi you clicked me!");
};

$("#someElement").click(someElementClicked);
14/04/2009 को 17:53
का स्रोत उपयोगकर्ता

वोट
-2

सटीक बराबर $ है () बाँध () फ़ंक्शन।:

$("#elem").bind('click', function() {
  //do stuff here
});
14/04/2009 को 17:58
का स्रोत उपयोगकर्ता

वोट
2

बाध्य प्रलेखन।

आप इस उदाहरण का उपयोग करना चाहते जाएगा: अपने नमूना में आप अपने ईवेंट हैंडलर में एक वस्तु का उपयोग करें। इस कोड को आप वस्तु बाँध और घटना के हिस्से के रूप में इसे वापस प्राप्त करने की अनुमति देगा। यह बंद बनाने की तुलना में थोड़ा और अधिक सुविधाजनक है।

function Something() {
  this.myData = "fun";
  this.handleClick = function(event) {
    alert(event.data.myData);
  }
}

var something = new Something();
$('h2').bind("click", something, something.handleClick);

संभावित घटना मान:: बाइंड लगभग हर घटना आप की जरूरत के साथ काम करता कलंक, ध्यान, भार, आकार बदलने, स्क्रॉल, उतारना, beforeunload, क्लिक करें, dblclick, mousedown, mouseup, MouseMove, माउसओवर, mouseout, mouseenter, mouseleave, परिवर्तन, का चयन करें, प्रस्तुत , keydown, कुंजी दबाने, KeyUp, त्रुटि

14/04/2009 को 18:04
का स्रोत उपयोगकर्ता

वोट
5

मुझे लगता है कि आप अभी भी प्रोटोटाइप का उपयोग कर रहे मान, और इतना है कि jQuery कोई विवाद को शामिल किया है $ () एक प्रोटोटाइप विधि और है $ जे () एक jQuery तरीका है।

शीघ्र जवाब

आप केवल अपने init विधि पर एक परिवर्तन करना होगा।

    init: function(txtOneId, txtTwoId, lblResultId, ancAddId) {
        this.txtOneId = txtOneId;
        this.txtTwoId = txtTwoId;
        this.lblResultId = lblResultId;
        this.ancAddId = ancAddId;

        var handler = function(event){ event.data.addResult(event) };

        $j(this.txtOneId).bind('keyup', this, handler);
        $j(this.txtTwoId).bind('keyup', this, handler);
    }

व्याख्या

प्रोटोटाइप के साथ आप bindAsEventListener फ़ंक्शन का उपयोग किया है, ताकि इस संदर्भ जब घटना प्राप्त होता है उपलब्ध हो जाएगा।

JQuery के लिए आप निम्नलिखित वाक्य रचना (से का उपयोग कर बाँध विधि के साथ इस घटना डेटा पारित कर सकते हैं jQuery एपीआई ):

.bind( eventType [, eventData], handler(eventObject) );

अपने कोड के लिए आवेदन किया, एक गुमनाम समारोह के उपयोग के साथ, इस पर ले कर:

$j(this.txtOneId).bind('keyup', this, function(event){ event.data.addResult(event) });

इस मामले में हम पाठ तत्वों के लिए 'KeyUp' घटना बाँध, eventData के रूप में इस संदर्भ गुजरती हैं और उसके बाद हैंडलर समारोह में हम event.data this.addResult (घटना) विधि को निष्पादित करने के साथ eventData (यह) के संदर्भ हैं।

14/04/2009 को 18:33
का स्रोत उपयोगकर्ता

वोट
3

प्रोटोटाइप कार्यों का लाभ बिना यह करने के लिए, आप jQuery.proxy उपयोग कर सकते हैं

http://api.jquery.com/jQuery.proxy/

08/07/2010 को 20:56
का स्रोत उपयोगकर्ता

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