1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| // our event is attached to EVERY input text field with a CLASS of "percent"
// this makes our code look good, but can lead to namespace issues
$("table.percentSort input.percent").keyup(function(){
// this simple line can establish a namespace for us, by getting the unique
// ID attached to our table (the table is considered the "container" for
// our widget. It could be anything, depending on your specific code.)
// We pass the CLASS of our widget to the parents() function, because
// that effectively encapsulates the widget
var NAMESPACE = "#" + $(this).parents("table.percentSort").attr("id");
// with the namespace established, we can use the jQuery selection
// syntax to use this namespace as our prefix for all of our remaining
// searches. Notice how the ambiguity is removed for our search
// by CLASS of "percent" and "percentTotal"
// This solves our namespace issues
var sum = $(NAMESPACE + " input.percent").sum();
var totalField = $(NAMESPACE + " .percentTotal");
|