Comments (4)
Cloning HTML could produce duplicated IDs, which is bad and could introduce issues with other JS libraries or CSS. In my case, to warkaround this I wrapped up my templates into <script type="text/html"></script>
and instead of cloning just doing $.html()
:
$(document).on('click', '[data-vex-toggle="modal"]', function (e) {
e.preventDefault();
var $trigger = $(this);
var $template = $('script[type="text/html"]#' + $trigger.data('template'));
if (!$template.length) {
return;
}
vex.open({
content: $template.html(),
className: 'vex-theme-default'
});
});
from vex.
You can place any HTML you want inside a dialog. You can do this by setting content
in the options object you pass to vex.open(options)
, or you can manually append it yourself since you are returned the $vexContent
jQuery-ed DOM element from the open call. So let's say you have a page like this:
<html>
<head>
<style>.templates { display: none }</style>
<body>
<header><!--- .. --></header>
<main><!--- .. --></main>
<div class="templates">
<sidebar id="sidebarTemplate"><!--- .. --></sidebar>
</div>
</body>
You could either do this:
vex.open({
content: $(sidebarTemplate).clone()
});
Or this:
var $vexContent = vex.open();
$vexContent.append($(sidebarTemplate).clone());
Of course, you'll additionally want to set the className
option property to style the modal on the left in the way you desire. I'd recommend looking at the recently added theme "Bottom Right Corner" for guidance there.
from vex.
Ah, tricky. I’ve been struggling with passing html as strings but never thought to do that.
thanks a bunch
from vex.
No problem. There is more info in the Advanced page of the docs as well.
from vex.
Related Issues (20)
- HTML entities in unsafeMessage/unsafeContent
- is it possible to open vex over a canvas ?
- Help moving vex and using append location
- vex-open remains on body in chrome if dialog is closed in background with child browser window & print dialog is called (then print cancelled or proceed) HOT 1
- vex input field sanitizes spaces
- Multiple Buttons?
- problem with the modal position and size HOT 1
- how to use it in Vue? HOT 2
- readme spelling error
- file input inside vex.open() HOT 1
- Dynamic select using AngularJS with ng-options
- vex.close could cover submission
- demos in documentation don't work
- button click opens and closes dialog at the same time HOT 2
- Can Vex Modal lock? HOT 1
- Unsafe assignment to innerHTML
- Animations required for close
- Make buttons respond to Enter and Esc keys
- Refresh buttons of a dialog confirm HOT 1
- vex dialog buttons are not working as expected. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vex.