Loading...
Loading...
Loading...
Loading...
Loading...
'); var params = { page: page, per_page: 6, keyword: keywordText, market: startupMarket }; e27API.getStartupsMDB(params, function(res) { if (res && res.list && res.list.length) { popupsearchModal.renderStartups(res.list, keywordText); $viewAllLink.removeClass('hide'); if (keywordText) { $viewAllLink.html('View all ' + textDisplay + ' Startups'); } else if (startupMarket) { $viewAllLink.html('View all ' + textDisplay + ' Startups'); } } else { $list.empty().append('
No results found.
'); $viewAllLink.addClass('hide'); } }, function() { $list.empty().append('
Error loading results.
'); $viewAllLink.addClass('hide'); }); } // Helper to show default tab function showDefault(tagType) { $results.hide(); $body.show(); } // Render articles in the results tab (POSTS) popupsearchModal.renderArticles = function(articles, keyword) { var $list = $results.find('#posts .popupsearch__result-list'); $list.empty(); if (!articles.length) { $list.append('
No results found.
'); return; } // Highlight helper function highlight(text, kw) { if (!kw) return text; var escaped = kw.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); var regex = new RegExp('(' + escaped + ')', 'gi'); return text.replace(regex, '$1'); } articles.forEach(function(article) { var title = highlight(article.title, keyword); var excerpt = highlight(article.excerpt, keyword); var card = $('
'); card.append('' + title + ''); card.append('
' + excerpt + '
'); $list.append(card); }); }; popupsearchModal.renderStartups = function(startups, keyword) { var $list = $results.find('#startups .popupsearch__result-list'); $list.empty(); if (!startups.length) { $list.append('
No results found.
'); return; } else { startups.forEach(function(startup) { var title = startup.name; var excerpt = startup.short_description ? startup.short_description : startup.description; var startupLogo = startup.logo_thumb; var startupUrl = startup.url; var card = $('
' + title + '
' + title + '
' + excerpt + '
'); $list.append(card); }); } } // Fetch articles from API and render popupsearchModal.getArticles = function(keyword, tagType, categorySlug, page, textDisplay) { var $list = $results.find('#posts .popupsearch__result-list'); var $viewAllLink = $results.find('.x-viewall-posts'); $viewAllLink.addClass('hide'); $list.empty().append('
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
'); var params = {page: page, per_page: 6, title: keyword, category: categorySlug}; e27API.getArticlesMDB(params, function(res) { if (res && res.list && res.list.length) { popupsearchModal.renderArticles(res.list, keyword); $viewAllLink.removeClass('hide'); if (keyword) { $viewAllLink.html('View all ' + textDisplay + ' Posts'); } else if (categorySlug) { $viewAllLink.html('View all ' + textDisplay + ' Posts'); } } else { $list.empty().append('
No results found.
'); $viewAllLink.addClass('hide'); } }, function() { $list.empty().append('
Error loading results.
'); $viewAllLink.addClass('hide'); }); }; // On Enter in search input $searchInput.on('keydown', function(e) { if (e.key === 'Enter') { var val = $(this).val().trim(); if (val) { // Show both tabs and nav links for text search $modal.find('li.nav-item:first-child').removeClass('hide'); $modal.find('li.nav-item:last-child').removeClass('hide'); $modal.find('#posts-tab').addClass('active'); $modal.find('#startups-tab').removeClass('active'); $results.find('#posts').addClass('show active'); $results.find('#startups').removeClass('show active'); showStartups(val); showResults(val); } } if (e.key === 'Escape') { showDefault($dataType); } }); // On click preset tag $tags.on('click', function() { var tagText = ""; var tagType = $(this).data('type'); var categorySlug = $(this).data('tags'); var textDisplay = $(this).text(); // console.log("tagText: " + tagText); // console.log("tagType: " + tagType); // console.log("categorySlug: " + categorySlug); if (tagType == 'category') { // Only show posts tab for category tags showResults(tagText, tagType, categorySlug, textDisplay); // Hide startups tab and nav link $modal.find('li.nav-item:first-child').removeClass('hide'); $modal.find('li.nav-item:last-child').addClass('hide'); // Make posts tab active $modal.find('#posts-tab').addClass('active'); $modal.find('#startups-tab').removeClass('active'); $results.find('#posts').addClass('show active'); $results.find('#startups').removeClass('show active'); } else { // Only show startups tab for market/other tags showStartups(tagText, tagType, categorySlug, textDisplay); // Hide posts tab and nav link $modal.find('li.nav-item:first-child').addClass('hide'); $modal.find('li.nav-item:last-child').removeClass('hide'); // Make startups tab active $modal.find('#startups-tab').addClass('active'); $modal.find('#posts-tab').removeClass('active'); $results.find('#startups').addClass('show active'); $results.find('#posts').removeClass('show active'); } }); // $startupTags.on('click', function() { // var tagText = ""; // var tagType = $(this).data('type'); // var startupMarket = $(this).data('tags'); // console.log("startupMarket: " + startupMarket); // showStartups(tagText, tagType, startupMarket); // }); // Optionally: Esc key on modal to return to default $modal.on('keydown', function(e) { if (e.key === 'Escape') { showDefault($dataType); } }); // When modal is closed, reset to default $modal.on('hidden.bs.modal', function() { showDefault($dataType); $searchInput.val(''); }); // When modal is shown, focus the input $modal.on('shown.bs.modal', function() { $searchInput.focus(); }); }; $(function() { popupsearchModal.init('#popupSearchModal'); });
Incomplete Profile
For a seamless e27 experience, we recommend updating your profile with relevant information about your professional career.
Complete Profile Now

Latest Echelon Updates

Latest Posts

Latest Posts

Pro Content

Subscribe - Get 50% Off
Pro Content

Cybersecurity Posts

Cybersecurity Posts

Artificial Intelligence Posts

Artificial Intelligence Posts
Company Milestones

Echelon recorded sessions

Watch All Videos
Echelon recorded sessions

Top Contributors

${val.title}
${jsondata.title}
` ); } }); $('._top-contributor-container').show() } let trendingLeaderboardsMoreContent = eventLeaderboards.elem.find('.product-article-box-articles-content-info'); trendingLeaderboardsMoreContent.find('._trending-leaderboards-list-more').html(`

View all news

`); eventLeaderboards.elem.find('._trending-leaderboards-header').removeClass('hide'); }); } eventLeaderboards.initialize_filter_elements(); } eventLeaderboards.getsidebarEvents = async function(data) { return e27API.ajax({ method: "POST", data: data, url: "leaderboard/widget", }); }; eventLeaderboards.init("#leaderboards-side-mobile");

Startup Funding News

Submit Funding News
Startup Funding News

Latest for Flux

e27 Partnered Posts
Press Releases

Partner Activities

'); jobsWidget.elem.find('.widget-big-card').append($nfPlaceholder); jobsWidget.elem.find('.item-active').addClass('block-loader'); } }, function(error) {} ); jobsWidget.elem.find('.x-jobs-filter .filter-btn').off('click').click(function(e){ e.preventDefault(); var filterData = {}; jobsWidget.elem.find('.x-jobs-filter .filter-btn').removeClass('active'); $(this).addClass('active'); filterData.type = $(this).data('filter-type'); // if(filterData.type == "location"){ // filterData.ccode = $(this).data('filter-value'); // } filterData.value = $(this).data('filter-value'); jobsWidget.getJobs(filterData,1); }); } jobsWidget.initGetJobsCarousel = function() { jobsWidget.elem.find('.widget-carousel-box').owlCarousel({ loop: false, margin: 15, responsiveClass: false, autoWidth:true, dots: false, responsive: { 0: { items: 1, nav: true }, 600: { items: 2, nav: true }, 1300: { items: 2, nav: true } } }); } jobsWidget.nFormatter = function(num) { if (num >= 1000000000) { return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'G'; } if (num >= 1000000) { return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M'; } if (num >= 1000) { return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'K'; } return num; } jobsWidget.validateText = function(str) { var tarea = str; if (tarea.indexOf("http://") == 0 || tarea.indexOf("https://") == 0) { return true; } else { return false; } } jobsWidget.initMouseDragScroll = function(){ var isDown = false; var startX; var scrollLeft; var scrollElement = jobsWidget.elem.find('.mds'); var isDown = false; var startX; var scrollLeft; var lastMove = 0; var velocity = 0; var friction = 0.95; // Adjust friction for inertia scrollElement.mousedown(function (e) { isDown = true; startX = e.pageX - $(this).offset().left; scrollLeft = $(this).scrollLeft(); lastMove = e.pageX; velocity = 0; $(this).stop(); // Stop any ongoing animation }); scrollElement.mouseleave(function () { isDown = false; }); scrollElement.mouseup(function () { isDown = false; inertiaScroll(); }); scrollElement.mousemove(function (e) { if (!isDown) return; e.preventDefault(); var x = e.pageX - $(this).offset().left; var walk = (x - startX); // Adjust multiplier to 1 for natural movement $(this).scrollLeft(scrollLeft - walk); velocity = e.pageX - lastMove; // Calculate velocity lastMove = e.pageX; }); function inertiaScroll() { if (Math.abs(velocity) > 0.5) { velocity *= friction; scrollElement.scrollLeft(scrollElement.scrollLeft() - velocity); requestAnimationFrame(inertiaScroll); } } } jobsWidget.init("#jobsWidget");
Join the Ecosystem
Connect with Asia’s largest startup community to discover opportunities, share your story, and grow your impact.
Sign up now
Pro Content
e27 Events and Programs

Top Contributors

${val.title}
${jsondata.title}
` ); trendingLeaderboardsContent.removeClass('hide'); eventLeaderboards.elem.find('._widget-links').before(trendingLeaderboardsContent); }); $('._top-contributor-container').show() } let trendingLeaderboardsMoreContent = eventLeaderboards.elem.find('.product-article-box-articles-content-info'); trendingLeaderboardsMoreContent.find('._trending-leaderboards-list-more').html(`

View all news

`); eventLeaderboards.elem.find('._trending-leaderboards-header').removeClass('hide'); }); } eventLeaderboards.initialize_filter_elements(); } eventLeaderboards.getsidebarEvents = async function(data) { return e27API.ajax({ method: "POST", data: data, url: "leaderboard/widget", }); }; eventLeaderboards.init("#leaderboards-side");
Popular Posts
Access the Latest, Straight in Your Inbox — for Free!
Dive into the daily pulse of the tech and startup world with our cutting-edge content. Our editors and contributors bring you today’s most relevant tech startup news straight to your email!
Access the Latest, Straight in Your Inbox — for Free!
Dive into the daily pulse of the tech and startup world with our cutting-edge content. Our editors and contributors bring you today’s most relevant tech startup news straight to your email!