Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/4.0/getting-started/javascript.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ Alternatively, to target a specific plugin, just include the plugin's name as a
$(document).off('.alert.data-api')
{% endhighlight %}

{% callout warning %}
##### Escaping selectors
If you use special selectors, for example: `collapse:Example`, be sure to escape them, because they'll be passed through jQuery.
{% endcallout %}

## Events

Bootstrap provides custom events for most plugins' unique actions. Generally, these come in an infinitive and past participle form - where the infinitive (ex. `show`) is triggered at the start of an event, and its past participle form (ex. `shown`) is triggered on the completion of an action.
Expand Down
14 changes: 0 additions & 14 deletions js/src/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,6 @@ const Util = (($) => {
}
}

function escapeId(selector) {
// We escape IDs in case of special selectors (selector = '#myId:something')
// $.escapeSelector does not exist in jQuery < 3
selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1)
: selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1')

return selector
}

/**
* --------------------------------------------------------------------------
* Public Util Api
Expand All @@ -105,11 +96,6 @@ const Util = (($) => {
selector = element.getAttribute('href') || ''
}

// If it's an ID
if (selector.charAt(0) === '#') {
selector = escapeId(selector)
}

try {
const $selector = $(document).find(selector)
return $selector.length > 0 ? selector : null
Expand Down
12 changes: 0 additions & 12 deletions js/tests/unit/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,6 @@ $(function () {
// Not found element
var $el2 = $('<div data-target="#fakeDiv"></div>').appendTo($('#qunit-fixture'))
assert.strictEqual(Util.getSelectorFromElement($el2[0]), null)

// Should escape ID and find the correct element
var $el3 = $('<div data-target="#collapse:Example"></div>').appendTo($('#qunit-fixture'))
$('<div id="collapse:Example"></div>').appendTo($('#qunit-fixture'))
assert.strictEqual(Util.getSelectorFromElement($el3[0]), '#collapse\\:Example')

// If $.escapeSelector doesn't exist in older jQuery versions (< 3)
var tmpEscapeSelector = $.escapeSelector
delete $.escapeSelector
assert.ok(typeof $.escapeSelector === 'undefined', '$.escapeSelector undefined')
assert.strictEqual(Util.getSelectorFromElement($el3[0]), '#collapse\\:Example')
$.escapeSelector = tmpEscapeSelector
})

QUnit.test('Util.typeCheckConfig should thrown an error when a bad config is passed', function (assert) {
Expand Down