Is it possible to have multiple click events on one elements, when using different selectors?
<button id="test" class="testclass">test</button>
<button id="test2" class="testclass2">test 2</button>
//only B
$('.testclass')[0].click(function(){alert('A');});
$('#test').click(function(){alert('B');});
// A and B
$('#test2').click(function(){alert('A2');});
$('#test2').click(function(){alert('B2');});
Yes, that's perfectly possible.
However, you're misusing jQuery.
Writing $(...)[0]
gives you the first raw DOM element in the set.
It isn't a jQuery object, so you can't call jQuery's click
method on it.
Instead, you should call the eq
method, which returns a jQuery object containing a single element from the original set.
Change it to $('.testclass').eq(0).click(...)
It is possible.
However, this line:
$('.testclass')[0].click(function(){alert('A');});
Will not work. It should be:
$('.testclass').eq(0).click(function(){alert('A');});
Indexing the jQuery object will give you the DOM element at index zero, not a filtered jQuery object.
Yes you can have multiple click events on the object. The handlers wil be called in the order they were added (unless you say return false
in one of them).
remove [0]
or change it to .eq(0)
<button id="test" class="testclass">test</button>
<button id="test2" class="testclass2">test 2</button>
//only B
$('.testclass').click(function(){alert('A');});
$('#test').click(function(){alert('B');});
// A and B
$('#test2').click(function(){alert('A2');});
$('#test2').click(function(){alert('B2');});
working fiddle
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.