কীভাবে jQuery ব্যবহার করে কোনও লিঙ্কে ক্লিক ক্লিক করুন


238

আমার একটি লিঙ্ক আছে:

<ul id="titleee" class="gallery">
  <li>
    <a href="#inline" rel="prettyPhoto">Talent</a>
  </li>
</ul>

এবং আমি এটি ব্যবহার করে এটি ট্রিগার করার চেষ্টা করছি:

$(document).ready(function() {
  $('#titleee').find('a').trigger('click');
});

কিন্তু এটি কাজ করে না।

আমি চেষ্টা করেছি: $('#titleee a').trigger('click');

সম্পাদনা করুন :

আমাকে এখানে যা বলা হবে তা আসলে ট্রিগার করতে হবে <a href="#inline" rel="prettyPhoto">


7
location.href($('#titleee').find('a').attr("href"));?
সিলভাইন

3
বা এমনকি $ ('উল.গ্যালারি' )ও সন্ধান করুন ('লি> এ')। ট্রিগার ('ক্লিক করুন');
CarneyCode

114
ছেলেরা। আসল উত্তরটি এত সহজ। $('#titleee a')[0].click();। অন্য কথায়, ডওম ক্লিক পদ্ধতিটি ব্যবহার করুন, jQuery এক নয়। গ্রাহাম হটচিসকে উপভোট করুন !
রোমান স্টারকভ

5
@ ট্যাঙ্কের পরিবর্তে পপ আপ খোলার কারণে @ ক্রমিন এটি ঠিক নয়। তবে এই 'একটি' ট্যাগের ভিতরে একটি ডামি স্প্যানে ক্লিক করা উদ্দেশ্যটির জন্য কাজ করে
শিশির অরোরা

1
আপনি যদি অ্যাঙ্কারে কোনও ইভেন্ট ট্রিগার করার চেষ্টা করছেন তবে আপনার কোডটি কার্যকর হবে। $('ul#titleee li a[href="#inline"]').click();
আনন্দ পাল

উত্তর:


307

আপনি যদি নোঙ্গরে কোনও ইভেন্ট ট্রিগার করার চেষ্টা করছেন, তবে আপনার কোডটি কাজ করবে আমি একটি যুক্ত ইভেন্টহ্যান্ডলারের সাথে জেসফিডেলে আপনার উদাহরণটি পুনরায় তৈরি করেছি যাতে আপনি দেখতে পান যে এটি কাজ করে:

$(document).on("click", "a", function(){
    $(this).text("It works!");
});

$(document).ready(function(){
    $("a").trigger("click");
});

আপনি কি অ্যাঙ্করটি ক্লিক করে ব্যবহারকারীকে ওয়েবপৃষ্ঠায় একটি নির্দিষ্ট পয়েন্টে নেভিগেট করার চেষ্টা করছেন, বা আপনি কি এটির সাথে আবদ্ধ ইভেন্টগুলি ট্রিগার করার চেষ্টা করছেন? সম্ভবত আপনি ক্লিকের ইভেন্টটিকে সফলভাবে ইভেন্টটির সাথে সীমাবদ্ধ করেননি?

এটিও:

$('#titleee').find('a').trigger('click');

এর সমতুল্য:

$('#titleee a').trigger('click');

কল সন্ধান করার দরকার নেই। :)


16
@ কিট। ফাইন্ড () আপনি যা প্রস্তাব করছেন তার চেয়ে দ্রুত নির্বাচক, আপনি যদি একমত না হন তবে একটি মানদণ্ড করুন তবে আপনার প্রস্তাবটি এটি ধীর করে দিচ্ছে। ইতিবাচক :-)
অ্যাডি এনগম

14
@mashappslabs - ঠিক আছে That's আপনি যদি অকাল এবং মাইক্রো অপ্টিমাইজেশন করার প্রয়োজন বোধ করেন তবে তা সত্যই হোক না কেন আমি আপনার জন্য খুশি। :)
কিট সান্দি

5
@ কিট ... সুতরাং যখন আপনি "ফাইন্ডে কল করার দরকার নেই" এর মত বিবৃতি দিচ্ছেন, তখন এটি অকাল অপটিমাইজেশনের ক্ষেত্রের মধ্যে পড়ে না ?? আমি মনে করি এটি করে তবে এটি প্রথমে প্রস্তাবিত চেয়ে ধীর হতে পারে। আমি তর্কের স্বার্থে সাড়া দিচ্ছি না, তবে আমরা সকলেই যা করতে চাই তা আরও ভাল করার জন্য একটি নিরন্তর প্রচেষ্টার জন্য। আমি আশা করি এটি ঠিক বেরিয়ে এসেছে :-)
অ্যাডি এনগম

5
@ মাশপ্পস্ল্যাবস - প্রথমবারের মতো jsperf.com দেখে আমি ভেবেছিলাম আমি ফিরে এসে বলেছি আপনি ঠিক বলেছেন, সাধারণ ক্ষেত্রে আপনার পদ্ধতিটি আরও দ্রুত। কেবল অপেরা ধীর। jsperf.com/jquery-selector-perf-right-to-left/32
কিট সুন্দে

9
অদ্ভুতভাবে, উপরেরগুলি আমার পক্ষে কাজ করে না, তবে @ গ্রাহাম হটসকিস উত্তরটি দেয়।
অলিভার

210

দুঃখিত, তবে ইভেন্ট হ্যান্ডলারটি সত্যই প্রয়োজন নেই। আপনার যা দরকার তা হ'ল ক্লিকের জন্য ট্যাগের মধ্যে থাকা আরেকটি উপাদান।

<a id="test1" href="javascript:alert('test1')">TEST1</a>
<a id="test2" href="javascript:alert('test2')"><span>TEST2</span></a>

jQuery:

$('#test1').trigger('click'); // Nothing
$('#test2').find('span').trigger('click'); // Works
$('#test2 span').trigger('click'); // Also Works

আপনি যা ক্লিক করছেন তার সব কিছুই এটি ট্যাগ নয় তবে এর মধ্যে থাকা জিনিস। দুর্ভাগ্যক্রমে, খালি লেখাটি JQuery দ্বারা স্বীকৃত বলে মনে হচ্ছে না, তবে এটি ভ্যানিলা জাভাস্ক্রিপ্ট দ্বারা:

document.getElementById('test1').click(); // Works!

অথবা অ্যারে হিসাবে jQuery অবজেক্ট অ্যাক্সেস করে

$('#test1')[0].click(); // Works too!!!

9
'(' নির্বাচক ') [0] .ক্লিক () প্রকৃতপক্ষে কমপক্ষে একটি কেস হ্যান্ডেল করবে যা ইভেন্ট হ্যান্ডলারটি ট্রিগার করবে না: ব্রাউজারটিকে প্রোটোকল হ্যান্ডলার লিঙ্কটি ট্রিগার করার জন্য এটি একটি আসল ক্লিক হিসাবে স্বীকৃতি দেয়। ক্লিক ইভেন্টে কলিং ট্রিগার সম্পর্কিত অ্যাপ্লিকেশন আরম্ভ করার কারণ হবে না। আপনার উত্তরে এটি অন্তর্ভুক্ত করার জন্য ধন্যবাদ!
গ্রেগ পেটিট

3
হ্যাঁ, .click()আমার যা প্রয়োজন ঠিক তা-ই!
notacouch

3
$ ('# টেস্ট 2 স্প্যান')। ট্রিগার ('ক্লিক'); এটি নতুন ট্যাবে url খুলতে পারে বলে সহায়তা করেছে তবে helped ('# টেস্ট 1') [0]। ক্লিক করুন (); একটি পপ আপ ইন্সটিয়া খুলছিল।
শিশির অরোরা

যখন আমি ব্যাকগ্রাউন্ড উপাদানটিতে ক্লিক করার চেষ্টা করি: $ ('# শিরোনাম এ')। ট্রিগার ('ক্লিক করুন'); -> কাজ করে না! $ ('# শিরোনাম এ') [0] .ক্লিক (); -> কাজ!
18

1
$ ( '# পাচ্ছেন test1') [0] .click (); একটি ত্রাণকর্তা। অনেক অনেক ধন্যবাদ
অমিত বিশট

18

যেহেতু এই প্রশ্নটি গুগলে "একটি <a>উপাদানটিতে ক্লিক শুরু করার জন্য" 1 ম স্থান পেয়েছে এবং কোনও উত্তর আসলে আপনি কীভাবে এটি করেন তা উল্লেখ করে না, আপনি এটি এটি কীভাবে করেন:

$('#titleee a')[0].click();

ব্যাখ্যা: আপনি clickঅন্তর্নিহিত এইচটিএমএল-উপাদানটিতে একটি ট্রিগার করেছেন , jQuery- অবজেক্ট নয়

আপনি googlers স্বাগত :)


2
"আপনি অন্তর্নিহিত এইচটিএমএল-উপাদানটির উপর ক্লিক ক্লিক করুন, jQuery- অবজেক্টে নয়" " - এটি আমার জন্য ক্লিক করা হয়েছে, আপনাকে ধন্যবাদ!
ফ্রিশ

5

আপনার প্রদত্ত কোডটি দিয়ে আপনি কিছু হওয়ার আশা করতে পারেন না। আমি দ্বিতীয় @ মাশাপ্পস্ল্যাবগুলি: প্রথমে একটি ইভেন্ট হ্যান্ডলার যুক্ত করুন:

$("selector").click(function() {
    console.log("element was clicked"); // or alert("click");
});

তারপরে আপনার ইভেন্টটি ট্রিগার করুন:

$("selector").click(); //or
$("selector").trigger("click");

এবং আপনার কনসোলটিতে বার্তাটি দেখতে পাওয়া উচিত।


5
এটি আমার পক্ষে কাজ করে না: নির্বাচক যদি "ক" হয় (লিঙ্কগুলির জন্য এইচটিএমএল ট্যাগ, কেবল পরিষ্কার হয়ে থাকে), বেনামে ফাংশনটি আমি কল করলে কল হয় trigger, তবে ট্যাগটির ক্রিয়াটি ঘটে না। এটি ইভেন্টটি সম্পর্কিত ডিওএম উপাদানটিতে প্রচার করে না এমনই। @ গ্রাহামহটসকিসের উত্তরটি কেবলমাত্র আমার জন্য নির্ভরযোগ্যভাবে কাজ করে।
অলিভার

5

আপনি যদি অ্যাঙ্কারে কোনও ইভেন্ট ট্রিগার করার চেষ্টা করছেন তবে আপনার কোডটি কার্যকর হবে।

$(document).ready(function() {
  $('a#titleee').trigger('click');
});

অথবা

$(document).ready(function() {
  $('#titleee li a[href="#inline"]').click();
});

অথবা

$(document).ready(function() {
  $('ul#titleee li a[href="#inline"]').click();
});

3

ঠিক আছে আপনাকে প্রথমে ক্লিক ইভেন্ট সেটআপ করতে হবে তারপরে আপনি এটিকে ট্রিগার করতে পারবেন এবং দেখুন কী হবে:

//good habits first let's cache our selector
var $myLink = $('#titleee').find('a');
$myLink.click(function (evt) {
  evt.preventDefault();
  alert($(this).attr('href'));
});

// now the manual trigger
$myLink.trigger('click');

3

কীভাবে ইভেন্টটি ট্রিগার করা যায় এটি ডেমো

<!DOCTYPE html>
    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
        $("input").select(function(){
            $("input").after(" Text marked!");
        });
        $("button").click(function(){
            $("input").trigger("select");
        });
    });
    </script>
    </head>
    <body>

    <input type="text" value="Hello World"><br><br>

    <button>Trigger the select event for the input field</button>

    </body>
    </html>

3

লিঙ্কগুলির জন্য এটি কাজ করা উচিত:

eval($(selector).attr('href'));

2

এটি আপনার প্রশ্নের সঠিক উত্তর দেয় না, তবে মাথা ব্যথার সাথে একই ফল পাবে।

আমার সর্বদা আমার ক্লিক ইভেন্টগুলির কল পদ্ধতি রয়েছে যাতে আমি চালাতে চাই এমন সমস্ত যুক্তি থাকে। যাতে আমি প্রকৃত ক্লিক ছাড়াই ক্রিয়াটি সম্পাদন করতে চাইলে আমি সরাসরি পদ্ধতিটি কল করতে পারি।


2

আপনার উপাদানটির নেটিভ .click()পদ্ধতিতে কল করা বা createEventAPI ব্যবহার করা উচিত ।

আরও তথ্যের জন্য, দয়া করে এখানে যান: https://learn.jquery.com/events/triggering-event-handlers/


6
স্ট্যাক ওভারফ্লোতে স্বাগতম! সমস্যাটি সমাধান করার জন্য এটি মূল্যবান ইঙ্গিত হতে পারে, তবে একটি উত্তরের উত্তরও সমাধানটি প্রদর্শন করে। আপনার অর্থটি বোঝাতে উদাহরণ কোড সরবরাহ করতে দয়া করে সম্পাদনা করুন । বিকল্পভাবে, পরিবর্তে এটি মন্তব্য হিসাবে বিবেচনা করুন।
টবি স্পিড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.