ক্লিক করুন টুইটার বুটস্ট্র্যাপ সরঞ্জামচালনা সামগ্রী পরিবর্তন করুন


224

আমার একটি অ্যাঙ্কর এলিমেন্টে একটি টুলটিপ রয়েছে, এটি ক্লিক করে একটি এজেএক্স অনুরোধ প্রেরণ করে। এই উপাদানটির একটি টুলটিপ রয়েছে (টুইটার বুটস্ট্র্যাপ থেকে)। আমি চাই যখন এজেএক্স অনুরোধটি সফলভাবে ফিরে আসবে তখন টুলটিপ সামগ্রীটি পরিবর্তিত হয়। দীক্ষার পরে কীভাবে আমি সরঞ্জামদণ্ডটি চালিত করতে পারি?

উত্তর:


412

উত্স কোড পড়ার সময় সবেমাত্র এটি আজ খুঁজে পাওয়া গেল। সুতরাং ক্লাসের $.tooltip(string)মধ্যে কোনও ফাংশন কল Tooltip। এবং যদি আপনি তাকান Tooltip.fixTitle, এটি data-original-titleবৈশিষ্ট্যটি নিয়ে আসে এবং এটির সাথে শিরোনাম মানটি প্রতিস্থাপন করে।

সুতরাং আমরা কেবল:

$(element).tooltip('hide')
          .attr('data-original-title', newValue)
          .tooltip('fixTitle')
          .tooltip('show');

এবং নিশ্চিতভাবেই, এটি শিরোনাম আপডেট করে, যা সরঞ্জামদণ্ডের অভ্যন্তরের মান।

আরেকটি উপায় (নীচে @ লুকমডো মন্তব্য দেখুন):

$(element).attr('title', 'NEW_TITLE')
          .tooltip('fixTitle')
          .tooltip('show');

5
ধন্যবাদ! এটি এক ঘন্টা জন্য বিস্মিত ছিল।
পল্লব

160
অথবা আরও ছোট (মসৃণ)$(element).attr('title', 'NEW_TITLE').tooltip('fixTitle').tooltip('show');
lukmdo

5
আপনি ডেটা ('টুলটিপ') এর মাধ্যমেও শিরোনাম পরিবর্তন করতে পারেন options বিকল্পগুলির সম্পত্তি, স্ট্যাকওভারফ্লো
জেমস ম্যাকমাহন

4
'ফিক্সটাইটেল' তে ডকুমেন্টেশন খুঁজে পাওয়া যায়নি, সুতরাং এটি ব্যবহার করা আমার পক্ষে ভাল ধারণা নয় !? ...
ব্যবহারকারী 2846569

16
এটি আসলে আমার পক্ষে কাজ করে না, টুলটিপ মানগুলি পরিবর্তন করে এবং তারপরে দ্রুত অদৃশ্য হয়ে যায়। $(element).attr('data-original-title', newValue).tooltip('show');আমার জন্য সবচেয়ে সহজ কাজ সমাধান ছিল।
গাবে ও'লিয়ারি

98

বুটস্ট্র্যাপ 3-এ এটি ইতিমধ্যে সরঞ্জামটিপ ডিসপ্লেতে পরিবর্তনগুলির ট্রিগার পরিবর্তন elt.attr('data-original-title', "Foo")হিসাবে "data-original-title"বৈশিষ্ট্যযুক্ত পরিবর্তন হিসাবে কল করা যথেষ্ট ।

আপডেট: আপনি পরিবর্তনগুলি তত্ক্ষণাত্ প্রদর্শন করতে .toltip ('show') যুক্ত করতে পারেন, শিরোনামে পরিবর্তনটি দেখার জন্য আপনাকে মাউসআউট এবং মাউসওভার লক্ষ্যমাত্রার প্রয়োজন হবে না

elt.attr('data-original-title', "Foo").tooltip('show');

5
পরিষ্কার উত্তর, কেন আপ নেই: <
ays0110

3
এটি অবিলম্বে পরিবর্তনগুলি প্রয়োগ করে না, নতুন শিরোনামের পাঠ্যটি দেখার জন্য আপনাকে মাউসআউট এবং মাউসওভার লক্ষ্য করতে হবে
লেভ লুকুকসকি

9
এটি আসলে সেরা উত্তর এবং আপনি .tooltip('show');আপডেটের পরে এটি প্রদর্শন করতে এটি যোগ করতে পারেন
জ্যারেড

এটিই একমাত্র সমাধান (অনেকগুলি পরীক্ষার মধ্যে) যা কেবলমাত্র (বিএস 3) কাজ করে বলে মনে হয়েছিল। নিশ্চিত করার জন্য দুর্দান্ত সমাধান!
জয়েস্ফ

3
এই সমাধানটি অন্য সকলের চেয়ে ভাল
আইয়্যাজ জাফর

14

আপনি আসলে শো / লুকান কল না করেই সরঞ্জামটিপ পাঠ্য আপডেট করতে পারেন:

$(myEl)
    .attr('title', newTitle)
    .tooltip('fixTitle')
    .tooltip('setContent')

3
এই, .tooltip('show')চেইন শেষে, আমার জন্য কাজ।
মার্কা

1
হ্যাঁ, setContentএবং showকৌশলটি! আপনি data-original-titleব্যবহারের পরিবর্তে সরাসরি পরিবর্তন করতে পারেনfixTitle
ব্রেলিওলো

বুটস্ট্র্যাপ v2.3.1 এ পরীক্ষিত
রিকার্ডো

13

আপনি যদি সরঞ্জামটিটিপটি বন্ধ না করে এবং পুনরায় না খোলা করে পাঠ্য পরিবর্তন করতে চান তবে একটি দুর্দান্ত সমাধান এখানে।

$(element).attr('title', newTitle)
          .tooltip('fixTitle')
          .data('bs.tooltip')
          .$tip.find('.tooltip-inner')
          .text(newTitle)

এইভাবে, টেক্সটটি সরঞ্জামটিপ বন্ধ না করে প্রতিস্থাপন করা হয়েছে (পুনরুদ্ধার করা যায় না, তবে আপনি যদি একটি শব্দ পরিবর্তন করে থাকেন তবে এটি ঠিক আছে)। এবং আপনি যখন টুলটিপে + ফিরে ফিরে যান, এটি এখনও আপডেট করা হয়।

** এটি বুটস্ট্র্যাপ 3, 2 এর জন্য আপনাকে সম্ভবত ডেটা / শ্রেণির নাম পরিবর্তন করতে হবে


5
বলেছেন $tipএর একটি বৈশিষ্ট্য নয়$(element)
অগাস্টিন Riedinger

এটি করেছেন:$(element).attr('title', newTitle).tooltip('fixTitle').parent().find('.tooltip .tooltip-inner').text(newTitle);
অগস্টিন রিডিংগার 20'15

আমি কোনও পাঠ্য ক্ষেত্রে টাইপ করার সময় প্রতিবেশী উপাদানের একটি সরঞ্জামটিপ আপডেট করছি এবং যখন আমি একটি কী টিপ করি তখন সরঞ্জামটি এই কোডটি সহ আমার জন্য অদৃশ্য হয়ে যায়।
কাঁপানো

এর জন্য ধন্যবাদ. এই সমাধানটির সাথে একমাত্র সমস্যাটি মনে হয় এটি পাঠ্য পরিবর্তনের পরে সরঞ্জামদণ্ডের অবস্থানকে বিশৃঙ্খলা করে।
ওয়াজসিচ জিলিনস্কি

13

বুটস্ট্র্যাপ 4 এর জন্য:

$(element).attr("title", "Copied!").tooltip("_fixTitle").tooltip("show").attr("title", "Copy to clipboard").tooltip("_fixTitle");

2
এটি অননুমোদিত API ব্যবহার করে। সতর্ক থাকুন।
ক্লো

9

যদি টুলটিপটি তাত্ক্ষণিকভাবে চালু করা হয় (সম্ভবত জাভাস্ক্রিপ্ট সহ):

$("#tooltip_id").data('tooltip').options.title="New_value!";
$("#tooltip_id").tooltip('hide').tooltip('show');

7
বুটস্ট্র্যাপ 3 সহ, এটি হয়ে যায়$('#tooltip_id').data('bs.tooltip').options.title = 'New_value!';
আজবাইভেন

আরে রিলেশনাল, আপনি কি মন্তব্যগুলির সংশোধন প্রতিফলিত করতে আপনার উত্তর পরিবর্তন করতে পারেন? ধন্যবাদ।
14

7

বুটস্ট্র্যাপ 3.x এর জন্য

এটি পরিষ্কার সমাধান মত মনে হচ্ছে:

$(element)
  .attr('data-original-title', 'New title').tooltip('show')

শীঘ্রই শিরোনাম আপডেট করতে ব্যবহার করা হয় এবং টুলটিপটি লুকিয়ে থাকা এবং আবার দেখানোর জন্য অপেক্ষা না করে।


7

বুটস্ট্র্যাপ 4 এর জন্য এখানে আপডেট রয়েছে :

var title = "Foo";
elt.attr('data-original-title', title);
elt.tooltip('update');
elt.tooltip('show');

তবে সর্বোত্তম উপায় হ'ল এটি করা:

var title = "Foo";
elt.attr('title', title);
elt.attr('data-original-title', title);
elt.tooltip('update');
elt.tooltip('show');

বা ইনলাইন:

var title = "Foo";
elt.attr('title', title).attr('data-original-title', title).tooltip('update').tooltip('show');

ইউএক্স পাশ থেকে আপনি কেবল দেখতে পাচ্ছেন যে কোনও বিবর্ণ বা লুকানো / প্রদর্শন প্রভাব ছাড়াই পাঠ্যটি পরিবর্তিত হয়েছে এবং এর কোনও প্রয়োজন নেই _fixTitle



6

বুটস্ট্র্যাপ 4

$('#topic_1').tooltip('dispose').tooltip({title: 'Goodbye'}).tooltip('show')

https://getbootstrap.com/docs/4.1/components/tooltips/#tooltipdispose

$('#topic_1').tooltip({title: 'Hello'}).tooltip('show');
setTimeout( function() {
  $('#topic_1').tooltip('dispose').tooltip({title: 'Goodbye'}).tooltip('show');
}, 5000);
#topic_1 {
  border: 1px solid red;
  margin: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js" integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em" crossorigin="anonymous"></script>

<div id="topic_1">Topic 1</div>


4

নিম্নলিখিতটি আমার পক্ষে সবচেয়ে ভাল কাজ করেছে, মূলত আমি যে কোনও বিদ্যমান সরঞ্জামদণ্ডটি স্ক্র্যাপ করছি এবং নতুন টুলটিপটি দেখানোর জন্য বিরক্ত করছি না। কলটি যদি অন্য উত্তরের মতো এই সরঞ্জামদণ্ডে শো হয় তবে কার্সার উপরে না থাকলেও এটি পপ আপ হয়।

এই সমাধানটির জন্য আমি যে কারণে চলেছি তা হ'ল অন্যান্য সমাধানগুলি, বিদ্যমান সরঞ্জামদণ্ডটিকে পুনরায় ব্যবহার করার ফলে টুলটিপটি কিছু অদ্ভুত সমস্যাগুলির দিকে নিয়ে যায় যখন উপাদানটির উপরে কার্সারটিকে ঘুরিয়ে দেওয়ার সময় কখনও কখনও প্রদর্শিত হয় না।

function updateTooltip(element, tooltip) {
    if (element.data('tooltip') != null) {
        element.tooltip('hide');
        element.removeData('tooltip');
    }
    element.tooltip({
        title: tooltip
    });
}

1
এটির সেরা উত্তর ues প্রশ্ন।
ড্যানিয়েল মিলিস্কি

@ ড্যানিয়েলমিলিস্কি ধন্যবাদ :)
aknuds1

1
আপনি যদি data('bs.tooltip')data('tooltip')
নাইজেল অ্যাঞ্জেল

3

বুটস্ট্র্যাপ 4 এ আমি কেবল $(el).tooltip('dispose');তখনই স্বাভাবিক হিসাবে পুনরায় তৈরি করি । সুতরাং আপনি কোনও ফাংশনের আগে ডিপোজালটি রাখতে পারেন যা একটি দ্বিগুণ হবে না তা নিশ্চিত হওয়ার জন্য একটি টুলটিপ তৈরি করে।

রাষ্ট্র এবং মানগুলির সাথে টিঙ্কার পরীক্ষা করা কম বন্ধুত্বপূর্ণ বলে মনে হয়।


আমাদের কি টুলটিপ শিরোনামটি আপডেট করার আগে বা পরে $ (এল) .tooltip ('নিষ্পত্তি') করতে হবে?
ফিফি

@ আইমবট পুরানো টুলটিপটি নিষ্পত্তি করুন, তারপরে নতুন ডেটা দিয়ে পুনরায় তৈরি করুন। যদি আপনার টুলটিপগুলি জটিল হয় তবে আপনি প্রাথমিক কনফিগারটি পুনরুদ্ধার করতে বা অন্যথায় সঞ্চয় করতে চাইতে পারেন যাতে আপনি কেবল সেই কনফিগারেশনটি + নতুন মানগুলি নিয়ে পুনরায় তৈরি করতে পারেন। আশা করি তা বোধগম্য হয়।
মার্টিন লিন 21

2

আপনি কোনও ফাংশন দিয়ে টুলটিপ কলটিতে সামগ্রী সেট করতে পারেন

        $("#myelement").tooltip({
            "title": function() {
                return "<h2>"+$("#tooltipcontainer").html()+"</h2>";
            }
        });

আপনাকে কেবলমাত্র উপাদানটির শিরোনাম ব্যবহার করতে হবে না।


2

ধন্যবাদ এই কোডটি আমার জন্য খুব সহায়ক ছিল, আমি এটি আমার প্রকল্পগুলিতে কার্যকর বলে মনে করি

$(element).attr('title', 'message').tooltip('fixTitle').tooltip('show');


1

যে কোনও প্রাক-বিদ্যমান টুলটিপটি ধ্বংস করুন যাতে আমরা নতুন সরঞ্জামদণ্ডের সামগ্রীটি পুনরায় তৈরি করতে পারি

$(element).tooltip("destroy");    
$(element).tooltip({
    title: message
});

1

আমি উত্তরগুলির কোনওটিই কাজ করতে পারি না, এখানে কার্যকারিতা রয়েছে:

$('#'+$(element).attr('aria-describedby')+' .tooltip-inner').html(newTitle);

0

আমি মনে করি মেহমেট দুরান প্রায় সঠিক, তবে একই সরঞ্জামদণ্ড এবং তাদের স্থাপনার সাথে একাধিক ক্লাস ব্যবহার করার সময় কিছু সমস্যা হয়েছিল were নীচের কোডটি "টুলটিপ_ক্লাস" নামে কোনও শ্রেণি আছে কিনা তা পরীক্ষা করে জেএস ত্রুটিগুলি এড়িয়ে চলে। আশাকরি এটা সাহায্য করবে.

if (jQuery(".tooltip_class")[0]){    

        jQuery('.tooltip_class')
            .attr('title', 'New Title.')
            .attr('data-placement', 'right')
            .tooltip('fixTitle')
            .tooltip('hide');

    }

0

সরাসরি উপাদানটিতে পাঠ্য পরিবর্তন করে পাঠ্য পরিবর্তন করুন। (টুলটিপ অবস্থান আপডেট করে না)।

$('.tooltip-inner', $element.next()).html(newHtml);
$('.tooltip-inner', $element.next()).text(newText);

পুরানো টুলটিপটি ধ্বংস করে পাঠ্য পরিবর্তন করুন, তারপরে একটি নতুন তৈরি এবং দেখিয়ে। (পুরানোটিকে বিবর্ণ হওয়ার কারণ এবং নতুনটি বিবর্ণ হওয়ার কারণ)

$element
.tooltip('destroy')
.tooltip({
    // Repeat previous options.
    title: newText,
})
.tooltip('show');

আমি "সংরক্ষণ করা" উভয়ই সঞ্চারিত করতে শীর্ষ পদ্ধতিটি ব্যবহার করছি। বার্তা ( &nbspযাতে ব্যবহার করে টুলটিপ আকারে পরিবর্তিত হয় না) এবং পাঠ্যটিকে "সম্পন্ন" করতে পরিবর্তন করুন। (প্লাস প্যাডিং) যখন অনুরোধটি সম্পূর্ণ হয়।

$element.tooltip({
  placement: 'left',
  title: 'Saving...',
  trigger: 'manual',
}).tooltip('show');

var parent = $element.parent();
var interval_id = setInterval(function(){
    var text = $('.tooltip-inner', parent).html();
    switch(text) {
    case 'Saving.&nbsp;&nbsp;': text = 'Saving..&nbsp;'; break;
    case 'Saving..&nbsp;': text = 'Saving...'; break;
    case 'Saving...': text = 'Saving.&nbsp;&nbsp;'; break;
    }
    $('.tooltip-inner', parent).html(text);
}, 250);

send_request( function(){
    // When the request is complete
    clearInterval(interval_id);
    $('.tooltip-inner', parent).html('Done.&nbsp;&nbsp;&nbsp;&nbsp;');
    setTimeout(function() {
        $element.tooltip('hide');
    }, 1500 /* Show "Done." for a bit */);
});

0

এটি আমার জন্য কাজ করেছে: (বুটস্ট্র্যাপ ৩.৩..6; জ্যাকুয়ারি = 1.11.3)

<a id="alertTooltip" href="#" data-html="true" class="tooltip" data-toggle="tooltip" title="Tooltip message"></a>

<script>
  $('#alertTooltip').attr('title', "Tooltip new <br /> message").tooltip('fixTitle');
</script>

বৈশিষ্ট্যটি data-html="true"টুলটিপ শিরোনামে এইচটিএমএল ব্যবহার করতে দেয়।


0

টুলটিপ অবজেক্ট বুস্ট্র্যাপ সহ:

$(element).attr('data-original-title', 'New value');
$(element).data('bs.tooltip').tip().find('.tooltip-inner').text('New value');

0

বিএস 4 এর জন্য (এবং বিএস 3 সামান্য পরিবর্তন সহ) .. কয়েক ঘন্টা অনুসন্ধান এবং পরীক্ষার পরে, আমি এই সমস্যার সবচেয়ে নির্ভরযোগ্য সমাধান নিয়ে এসেছি এবং এটি একই সাথে একাধিক (টুলটিপ বা পপওভার) খোলার সমস্যাটিও সমাধান করে, এবং ফোকাস হারানোর পরে স্বয়ংক্রিয়ভাবে খোলার সমস্যা ইত্যাদি

$('[data-toggle="tooltip"]').tooltip({
  trigger: 'hover'
}).on('shown.bs.tooltip', function() {
  var link = $(this);
  var data = '';
  data += '<ul style="list-style-type:none;margin:0;padding:0;text-align:left;font-size:12px">';
  data += '	<li>Sherif Salah</li>';
  data += '	<li>Muhammad Salah</li>';
  data += '	<li>and a gazillion more...</li>';
  data += '</ul>';
  link.attr('data-original-title', data);
  setTimeout(function() {
    if (link.is(':hover')) {
      link.tooltip("dispose").tooltip("show");
    }
  }, 1000);
});
<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
</head>

<body>
  <div class="card">
    <div class="card-body text-center">
      <a href="JavaScript:void(0);" class="btn btn-sm btn-link" data-toggle="tooltip" data-placement="top" data-html="true" title="Loading...">gazillion</a>
    </div>
  </div>
  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
</body>

</html>


0

আমি এটি কেবল বুটস্ট্র্যাপ 4 ও ডাব্লু / ও কলিংয়ে পরীক্ষা করেছি ow শো ()

el.tooltip('hide').attr('data-original-title', 'message');

-1

যখন আপনি আজাক্স অনুরোধটি সফলভাবে ফিরে আসবে তখন আপনি সরঞ্জাম টিপটি এর শিরোনাম পরিবর্তন করে এবং আবার সরঞ্জামটিটি প্রদর্শন করতে এই কোডটি ব্যবহার করতে পারেন।

$(element).tooltip('hide');
$(element).attr('title','this is new title');
$(element).tooltip('fixTitle');
setTimeout(function() {  $(element).tooltip('show');}, 500);

-1

আমি এই সহজ উপায় ব্যবহার করছি:

$(document).ready(function() {
    $("#btn").prop('title', 'Click to copy your shorturl');
});

function myFunction(){
  $(btn).tooltip('hide');
  $(btn).attr('data-original-title', 'Test');
  $(btn).tooltip('show');
});


-1
$(this).attr('data-original-title', 'click here to publish')
       .tooltip('fixTitle')
       .tooltip('show');

অ্যাট্রি 'ডেটা-অরিজিনাল-শিরোনাম' দিয়ে আরম্ভ করার পরে যদি আপনাকে কোনও সরঞ্জামদণ্ডের পাঠ্য পরিবর্তন করতে হয় তবে দরকারী।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.