एक HTML बटन के ऑनक्लिक ईवेंट प्रतिनिधि बदल रहे हैं?

वोट
2

आप जावास्क्रिप्ट यह है कि जब एक फार्म बटन क्लिक किए जाने को निष्पादित करेंगे बदल सकता हूँ?

मैं बदल रहा है की कोशिश की है इसके onClicked और उसके onclicked बच्चे तो जैसे गुण:

$('mybutton').onClick = 'doSomething';

तथा

$('mybutton').attributes[onclick] = 'doSomething()';

न तो काम करने के लिए लग रहे हैं। मेरे अन्य विकल्प हैं:

  1. दो बटन है और एक छिपाने के लिए और अन्य दिखाने के लिए।
  2. यह एक समारोह है कि एक स्ट्रिंग evals और समारोह मैं निष्पादित करने के लिए चाहते हैं कि स्ट्रिंग को बदलने के लिए निर्देश दिया है।

न तो बहुत सुंदर लग रहे हैं।

मैं एक जे एस पुस्तकालय के रूप में प्रोटोटाइप का उपयोग कर रहा है, तो यह किसी भी उपयोगी उपकरणों है कि मैं उन्हें इस्तेमाल कर सकते हैं।

21/05/2009 को 15:28
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


7 जवाब

वोट
2

प्रोटोटाइप के लिए, मुझे विश्वास है कि यह कुछ इस तरह होगा:

$("mybutton").observe('click', function() {
     // do something here
});

संपादित करें: या, के रूप में यह में कहते हैं प्रलेखन , तो आप बस समारोह आप क्लिक पर कॉल करना चाहते हैं निर्दिष्ट कर सकते हैं:

$('mybutton').observe('click', respondToClick);

function respondToClick(event) {
    // do something here
}

लेकिन यह सब, फिर से, प्रोटोटाइप-विशिष्ट है।

21/05/2009 को 15:32
का स्रोत उपयोगकर्ता

वोट
1

सामान्य तरीके से जावास्क्रिप्ट में एक onclick हैंडलर स्थापित करने के लिए स्थापित करने के लिए है onclickएक समारोह के लिए, सीधे एक समारोह का यह नाम गुजर, एक स्ट्रिंग में नहीं द्वारा। तो अगर myButtonएक डोम तत्व के लिए सेट है, तो आप लिखते थे:

myButton.onclick = doSomething;

तो जब आप 'mybutton' बटन पर क्लिक, doSomethingसमारोह के रूप में बुलाया जाएगा doSomething()। अनाम प्रक्रियाएं के लिए, आप लिख सकते हैं:

myButton.onclick = function() {
    alert("myButton was clicked!");
};
21/05/2009 को 15:32
का स्रोत उपयोगकर्ता

वोट
0

JQuery में यह है

$("#myButtonId").click(myFunction);


function myFunction(){
 alert("Clicked");
}

या फिर आप समारोह इनलाइन डाल करना चाहते हैं:

$("#myButtonId").click(function(){
     alert("Clicked");
});

(: के तत्व इसे के सामने एक # डालें, तो आपकी पहचान का उपयोग कर आईई) आप JQuery का उपयोग कर रहे हैं, तो सबसे पहले आप प्रासंगिक चयनकर्ता उपसर्ग का उपयोग सुनिश्चित करें। दूसरी बात यह क्लिक करें घटना के लिए एक कॉलबैक आवंटित करने के लिए क्लिक करें विधि है।

21/05/2009 को 15:36
का स्रोत उपयोगकर्ता

वोट
0

अंतिम मैं प्रोटोटाइप का इस्तेमाल किया, यह कुछ इस तरह था:

Event.observe('mybutton', 'click', doSomething);

वैसे, अपने उदाहरण भले ही आप फ़ंक्शन नाम उद्धृत नहीं किया काम किया है हो सकता है।

संपादित करें: हाँ, Element.observe (तत्व, घटनानाम, हैंडलर) और someElement.observe (घटनानाम, हैंडलर) भी काम करते हैं। और हैंडलर नाम बोली नहीं है - तुम नहीं एक स्ट्रिंग समारोह पारित करने के लिए चाहते हैं!

21/05/2009 को 15:37
का स्रोत उपयोगकर्ता

वोट
2

प्रोटोटाइप ढांचे का उपयोग करके आप करते हैं:

Event.observe("mybutton", "click", clickHandler);

या:

Event.observe("mybutton", "click", function() {
  alert("Button clicked!");
});

या:

$("mybutton").observe("click", clickHandler);

या:

$("mybutton").observe("click", function() {
  alert("Button clicked!");
});
21/05/2009 को 15:37
का स्रोत उपयोगकर्ता

वोट
0

मैं फ़ायरफ़ॉक्स के तहत प्रोटोटाइप के साथ अपनी समस्या के लिए एक समाधान पाया:

$("#myButtonId").writeAttribute('onclick', ''); // first remove the attribute
$("#myButtonId").observe('click', function () { ... }); // then add the event
24/11/2011 को 10:38
का स्रोत उपयोगकर्ता

वोट
2

मूल ऑनक्लिक ईवेंट एचटीएमएल विशेषताओं के माध्यम से स्थापित किया गया था, तो आप इसे अधिलेखित करना निम्न का उपयोग कर सकते हैं:

$("#myButtonId").setAttribute("onclick", "myFunction();");
20/09/2012 को 08:30
का स्रोत उपयोगकर्ता

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